Mercurial > hg > xemacs-beta
changeset 1330:4542b72c005e
[xemacs-hg @ 2003-03-01 07:25:26 by ben]
build patch
Makefile.in.in: Move src deletions to src/Makefile.in.in.
dump-paths.el, dumped-lisp.el: Delete. Combine stuff into setup-paths.el.
find-paths.el: Removed.
Make this file contain generic routines only. Move stuff to
compute Emacs roots to setup-paths.el.
startup.el: Removed.
Move these variables into setup-paths.el.
setup-paths.el, startup.el: Removed.
Combine all high-level code for computing the paths into
setup-paths.el. Create new function startup-find-load-path to
encapsulate all logic for computing `load-path'. Eliminate
invocation-directory and invocation-name parameters since
there is no point (false generality) -- the code references
other globals, which cannot be specified. Eliminate some code
duplicated between setup-paths.el and startup.el. Clean up
the debug-paths code and output load-path in addition.
Add logic to paths-emacs-root-p to support separated source
and build trees.
loadup.el, make-docfile.el, update-elc-2.el, update-elc.el: Rewrite to allow for separated source and build trees, as may occur
in MS Windows.
NOTE TO BUILD HACKERS:
loadup.el, make-docfile.el, update-elc.el and update-elc-2.el made two
assumptions that are no longer correct:
(1) The source and build trees are in the same place.
(2) They can make assumptions about where `.' is.
These files now compute the locations of the source and build
roots at the top of the file. *ALL* constant file names or path
snippets must now be made absolute using expand-file-name and one
of these roots.
dumped-lisp.el, packages.el: Removed.
Remove some unused lists of Lisp files. packages-hardcoded-lisp
(empty, in any case) moved to dumped-lisp.el.
startup.el: When a compiled init file is out-of-date wrt the uncompiled
version, load the uncompiled version and issue a nasty warning.
update-elc-2.el: Force touching of auto-autoloads files when REBUILD_AUTOLOADS
was set.
update-elc.el: Fix code that checks whether dumping is necessary to check against
xemacs.dmp, not xemacs.exe, when Unix and pdump.
lwlib-Xm.c: Fix compile warning.
README, config.inc.samp, xemacs.mak: -- Major reorganization and cleanup.
-- Add support for separated build tree and source tree.
-- Delete all support for X Windows building, since it's
totally bit-rotten and will never be fixed up. Instruct
people to use Cygwin if they want such support.
make-build-dir: New script to create a skeleton build tree for use with
separated build and source tree compilation.
m/acorn.h, m/alliant-2800.h, m/alliant.h, m/altos.h, m/amdahl.h, m/arm.h, m/att3b.h, m/aviion.h, m/clipper.h, m/cnvrgnt.h, m/convex.h, m/cydra5.h, m/delta.h, m/delta88k.h, m/dpx2.h, m/elxsi.h, m/ews4800r.h, m/gould.h, m/hp800.h, m/hp9000s300.h, m/i860.h, m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/ibmrt.h, m/intel386.h, m/iris4d.h, m/iris5d.h, m/iris6d.h, m/irist.h, m/m68k.h, m/masscomp.h, m/mg1.h, m/mips-nec.h, m/mips-siemens.h, m/mips.h, m/nh3000.h, m/nh4000.h, m/ns32000.h, m/plexus.h, m/powerpc.h, m/sequent-ptx.h, m/sequent.h, m/sgi-challenge.h, m/stride.h, m/tad68k.h, m/targon31.h, m/tekxd88.h, m/template.h, m/tower32.h, m/tower32v3.h, m/ustation.h, m/wicat.h, m/xps100.h, data.c, doc.c, editfns.c, emacs.c, lrecord.h, ntheap.c, process-unix.c, sysdep.c, unexec.c: Delete all support for bit-rotten CANNOT_DUMP. Just use pdump.
Makefile.in.in: Lots o' cleanup. Use names like LISP, SRC instead of
lispdir, srcdir, for consistency with xemacs.mak and the
conventions in the rest of the file. Eliminate use of ${...}
in favor of $(...), to make it easier to move code between
this file and xemacs.mak. Fix dependency handling wrt
NEEDTODUMP to eliminate problems some people (e.g. Vin) have
been seeing with non-GNU makes. Write a long section about
the subtle but oh-so-important differences in dependency
processing between nmake, make, and GNU make. Add
unicode-encapsulate target, from xemacs.mak.
chartab.c, lrecord.h: Fix crash due to attempt to free objects across dump/undump.
line wrap: on
line diff
--- a/ChangeLog Fri Feb 28 22:52:30 2003 +0000 +++ b/ChangeLog Sat Mar 01 07:25:56 2003 +0000 @@ -1,3 +1,11 @@ +2003-02-28 Ben Wing <ben@xemacs.org> + + * Makefile.in.in (mostlyclean): + * Makefile.in.in (clean): + * Makefile.in.in (top_distclean): + * Makefile.in.in (distclean): + Move src deletions to src/Makefile.in.in. + 2003-02-20 Ben Wing <ben@xemacs.org> * PROBLEMS:
--- a/Makefile.in.in Fri Feb 28 22:52:30 2003 +0000 +++ b/Makefile.in.in Sat Mar 01 07:25:56 2003 +0000 @@ -522,6 +522,7 @@ ## is rarely necessary and takes a lot of time. mostlyclean: FRC.mostlyclean for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done + $(RM) core ## `clean' ## Delete all files from the current directory that are normally @@ -531,16 +532,8 @@ ## with them. ## Delete `.dvi' files here if they are not part of the distribution. - -## Remove the generated load files here; they cause lots of problems -## when they don't work right. (beta can't depend on distclean, which -## removes necessary files generated by configure.) clean: FRC.clean for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done - $(RM) core lisp/auto-autoloads.el* lisp/custom-load.el* - $(RM) lisp/mule/auto-autoloads.el* lisp/mule/custom-load.el* - $(RM) ${srcdir}/modules/auto-autoloads.el* - $(RM) ${srcdir}/modules/custom-load.el* ## `distclean' ## Delete all files from the current directory that are created by @@ -550,7 +543,7 @@ ## distribution. top_distclean=\ $(RM) config.status config.log confdefs.h config-tmp-* build-install Installation ; \ - $(RM) core .sbinit lock/* GNUmakefile Makefile Makefile.in ; \ + $(RM) TAGS .sbinit lock/* GNUmakefile Makefile Makefile.in ; \ $(RM) lisp/finder-inf.el* Installation.el Installation.elc ; \ $(RM) -r site-packages xemacs-packages mule-packages site-lisp
--- a/lisp/ChangeLog Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/ChangeLog Sat Mar 01 07:25:56 2003 +0000 @@ -1,3 +1,132 @@ +2003-02-28 Ben Wing <ben@xemacs.org> + + * dump-paths.el: + * dump-paths.el (startup-setup-paths): Removed. + * dumped-lisp.el (preloaded-file-list): + Delete. Combine stuff into setup-paths.el. + + * find-paths.el: + * find-paths.el (paths-chase-symlink): + * find-paths.el (paths-emacs-root-p): Removed. + * find-paths.el (paths-construct-path): + * find-paths.el (paths-find-emacs-root): Removed. + * find-paths.el (paths-emacs-data-root-p): Removed. + * find-paths.el (paths-find-emacs-roots): Removed. + Make this file contain generic routines only. Move stuff to + compute Emacs roots to setup-paths.el. + + * startup.el: + * startup.el (emacs-roots): Removed. + * startup.el (emacs-data-roots): Removed. + * startup.el (user-init-directory-base): Removed. + * startup.el (user-init-directory): Removed. + * startup.el (user-init-file-base): Removed. + * startup.el (user-init-file-base-list): Removed. + * startup.el (user-home-init-file-base-list): Removed. + * startup.el (load-home-init-file): Removed. + * startup.el (load-user-init-file-p): Removed. + Move these variables into setup-paths.el. + + * setup-paths.el: + * setup-paths.el (emacs-roots): New. + * setup-paths.el (emacs-data-roots): New. + * setup-paths.el (user-init-directory-base): New. + * setup-paths.el (user-init-directory): New. + * setup-paths.el (user-init-file-base): New. + * setup-paths.el (user-init-file-base-list): New. + * setup-paths.el (user-home-init-file-base-list): New. + * setup-paths.el (load-home-init-file): New. + * setup-paths.el (load-user-init-file-p): New. + * setup-paths.el (paths-emacs-root-p): New. + * setup-paths.el (paths-emacs-data-root-p): New. + * setup-paths.el (paths-find-emacs-root): New. + * setup-paths.el (paths-find-emacs-roots): New. + * setup-paths.el (startup-find-load-path): New. + * setup-paths.el (startup-setup-paths): New. + * setup-paths.el (configure-package-path): New. + * setup-paths.el (startup-find-load-path-for-packages): New. + * startup.el (normal-top-level): + * startup.el (startup-find-roots-warning): Removed. + Combine all high-level code for computing the paths into + setup-paths.el. Create new function startup-find-load-path to + encapsulate all logic for computing `load-path'. Eliminate + invocation-directory and invocation-name parameters since + there is no point (false generality) -- the code references + other globals, which cannot be specified. Eliminate some code + duplicated between setup-paths.el and startup.el. Clean up + the debug-paths code and output load-path in addition. + Add logic to paths-emacs-root-p to support separated source + and build trees. + + * loadup.el: + * loadup.el (build-root): New. + * loadup.el (source-lisp): New. + * loadup.el (source-root): New. + * loadup.el (really-early-error-handler): + * make-docfile.el: + * make-docfile.el (build-root): New. + * make-docfile.el (build-lib-src): New. + * make-docfile.el (source-lisp): New. + * make-docfile.el (source-src): New. + * make-docfile.el (process-args): + * make-docfile.el (load-path): + * make-docfile.el ("raw-process.el"): + * make-docfile.el ((preloaded-file-list)): + * make-docfile.el (docfile-out-of-date): + * update-elc-2.el (batch-update-elc-2): + * update-elc.el: + * update-elc.el (undumped-exe): Removed. + * update-elc.el (dumped-exe-out-of-date-wrt-dump-files): Removed. + * update-elc.el (exe-target): New. + * update-elc.el (dump-target): New. + * update-elc.el (dump-target-out-of-date-wrt-dump-files): New. + * update-elc.el (build-root): New. + * update-elc.el (source-lisp): New. + * update-elc.el (source-lisp-mule): New. + * update-elc.el (source-root): New. + * update-elc.el (aa-lisp): New. + * update-elc.el (aac-lisp): New. + * update-elc.el (aa-lisp-mule): New. + * update-elc.el (aac-lisp-mule): New. + * update-elc.el ((preloaded-file-list site-load-packages files-to-process)): + Rewrite to allow for separated source and build trees, as may occur + in MS Windows. + + NOTE TO BUILD HACKERS: + + loadup.el, make-docfile.el, update-elc.el and update-elc-2.el made two + assumptions that are no longer correct: + + (1) The source and build trees are in the same place. + (2) They can make assumptions about where `.' is. + + These files now compute the locations of the source and build + roots at the top of the file. *ALL* constant file names or path + snippets must now be made absolute using expand-file-name and one + of these roots. + + * dumped-lisp.el: + * dumped-lisp.el (packages-hardcoded-lisp): New. + * packages.el: + * packages.el (packages-hardcoded-lisp): Removed. + * packages.el (packages-useful-lisp): Removed. + * packages.el (packages-unbytecompiled-lisp): Removed. + Remove some unused lists of Lisp files. packages-hardcoded-lisp + (empty, in any case) moved to dumped-lisp.el. + + * startup.el (find-init-file-1): New. + * startup.el (find-user-home-directory-init-file): + When a compiled init file is out-of-date wrt the uncompiled + version, load the uncompiled version and issue a nasty warning. + + * update-elc-2.el (batch-update-elc-2): + Force touching of auto-autoloads files when REBUILD_AUTOLOADS + was set. + + * update-elc.el ((preloaded-file-list site-load-packages files-to-process)): + Fix code that checks whether dumping is necessary to check against + xemacs.dmp, not xemacs.exe, when Unix and pdump. + 2003-02-20 Ben Wing <ben@xemacs.org> * mule/mule-cmds.el:
--- a/lisp/dump-paths.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/dump-paths.el Sat Mar 01 07:25:56 2003 +0000 @@ -1,209 +0,0 @@ -;; dump-paths.el --- set up XEmacs paths for dumping - -;; Copyright (C) 1985, 1986, 1992, 1994, 1997 Free Software Foundation, Inc. -;; Copyright (C) 2002 Ben Wing. - -;; Maintainer: XEmacs Development Team -;; Keywords: internal, dumped - -;; This file is part of XEmacs. - -;; XEmacs is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; XEmacs is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with XEmacs; see the file COPYING. If not, write to the Free -;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -;; 02111-1307, USA. - -;;; Synched up with: Not in FSF - -;;; Commentary: - -;; This sets up the various paths for continuing loading files for dumping. -;; This is the only file of the basic path/package files (find-paths.el, -;; package.el, setup-paths.el, dump-paths.el) that actually does stuff. - -(defun startup-setup-paths (roots data-roots user-init-directory - &optional - inhibit-packages inhibit-site-lisp - debug-paths called-early) - "Setup all the various paths. -ROOTS is a list of plausible roots of the XEmacs directory hierarchy. -If INHIBIT-PACKAGES is non-NIL, don't do packages. -If INHIBIT-SITE-LISP is non-NIL, don't do site-lisp. -If DEBUG-PATHS is non-NIL, print paths as they are detected. -It's idempotent, so call this as often as you like!" - - (if (eq inhibit-packages t) - (setq inhibit-packages '(early late last))) - (if (not (listp inhibit-packages)) - (setq inhibit-packages (list inhibit-packages))) - - (apply #'(lambda (early late last) - (setq early-packages (and (not (memq 'early inhibit-packages)) - early)) - (setq late-packages (and (not (memq 'late inhibit-packages)) - late)) - (setq last-packages (and (not (memq 'last inhibit-packages)) - last)) - ) - (packages-find-packages - data-roots - (packages-compute-package-locations user-init-directory))) - - (setq early-package-load-path (packages-find-package-load-path early-packages)) - (setq late-package-load-path (packages-find-package-load-path late-packages)) - (setq last-package-load-path (packages-find-package-load-path last-packages)) - - (if debug-paths - (progn - (princ (format "arguments:\nroots: %S\ndata-roots: %S\nuser-init-directory: %S\n" - roots data-roots user-init-directory) - 'external-debugging-output) - (princ (format "inhibit-packages: %S\ninhibit-site-lisp: %S\n" - inhibit-packages inhibit-site-lisp) - 'external-debugging-output) - (princ (format "debug-paths: %S\ncalled-early: %S\n\n" - debug-paths called-early) - 'external-debugging-output) - (princ (format "configure-package-path:\n%S\n" configure-package-path) - 'external-debugging-output) - (princ (format "early-packages and early-package-load-path:\n%S\n%S\n" - early-packages early-package-load-path) - 'external-debugging-output) - (princ (format "late-packages and late-package-load-path:\n%S\n%S\n" - late-packages late-package-load-path) - 'external-debugging-output) - (princ (format "last-packages and last-package-load-path:\n%S\n%S\n" - last-packages last-package-load-path) - 'external-debugging-output))) - - (setq lisp-directory (paths-find-lisp-directory roots)) - - (if debug-paths - (princ (format "lisp-directory:\n%S\n" lisp-directory) - 'external-debugging-output)) - - (if (featurep 'mule) - (progn - (setq mule-lisp-directory - (paths-find-mule-lisp-directory roots - lisp-directory)) - (if debug-paths - (princ (format "mule-lisp-directory:\n%S\n" - mule-lisp-directory) - 'external-debugging-output))) - (setq mule-lisp-directory '())) - - (setq site-directory (and (null inhibit-site-lisp) - (paths-find-site-lisp-directory roots))) - - (if (and debug-paths (null inhibit-site-lisp)) - (princ (format "site-directory:\n%S\n" site-directory) - 'external-debugging-output)) - - (setq load-path (paths-construct-load-path roots - early-package-load-path - late-package-load-path - last-package-load-path - lisp-directory - site-directory - mule-lisp-directory)) - - (setq module-directory (paths-find-module-directory roots)) - (if debug-paths - (princ (format "module-directory:\n%S\n" module-directory) - 'external-debugging-output)) - (setq site-module-directory (and (null inhibit-site-modules) - (paths-find-site-module-directory - roots))) - (if (and debug-paths (null inhibit-site-modules)) - (princ (format "site-module-directory:\n%S\n" - site-module-directory) - 'external-debugging-output)) - - (setq module-load-path (paths-construct-module-load-path - roots - module-directory - site-module-directory)) - - (unless called-early - (setq Info-directory-list - (paths-construct-info-path - roots early-packages late-packages last-packages)) - - (if debug-paths - (princ (format "Info-directory-list:\n%S\n" Info-directory-list) - 'external-debugging-output)) - - (setq exec-directory (paths-find-exec-directory roots)) - - (if debug-paths - (princ (format "exec-directory:\n%s\n" exec-directory) - 'external-debugging-output)) - - (setq exec-path - (paths-construct-exec-path roots exec-directory - early-packages late-packages - last-packages)) - - (if debug-paths - (princ (format "exec-path:\n%S\n" exec-path) - 'external-debugging-output)) - - (setq doc-directory (paths-find-doc-directory roots)) - - (if debug-paths - (princ (format "doc-directory:\n%S\n" doc-directory) - 'external-debugging-output)) - - (setq data-directory (paths-find-data-directory roots)) - - (if debug-paths - (princ (format "data-directory:\n%S\n" data-directory) - 'external-debugging-output)) - - (setq data-directory-list (paths-construct-data-directory-list - data-directory early-packages - late-packages last-packages)) - (if debug-paths - (princ (format "data-directory-list:\n%S\n" data-directory-list) - 'external-debugging-output)))) - -;;; Now actually do something. - -(let ((debug-paths (or debug-paths - (and (getenv "EMACSDEBUGPATHS") - t))) - (roots (paths-find-emacs-roots invocation-directory - invocation-name - #'paths-emacs-root-p)) - (data-roots (paths-find-emacs-roots invocation-directory - invocation-name - #'paths-emacs-data-root-p))) - - (if debug-paths - (progn - (princ (format "XEmacs thinks the roots of its hierarchy are:\n%S\n" - roots) - 'external-debugging-output) - (princ (format "XEmacs thinks the data roots of its hierarchy are:\n%S\n" - data-roots) - 'external-debugging-output))) - (startup-setup-paths roots data-roots - (paths-construct-path '("~" ".xemacs")) - (if inhibit-all-packages t - '(early last)) - inhibit-site-lisp - debug-paths - t)) - -;;; dump-paths.el ends here
--- a/lisp/dumped-lisp.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/dumped-lisp.el Sat Mar 01 07:25:56 2003 +0000 @@ -1,3 +1,11 @@ +(defvar packages-hardcoded-lisp + '( + ;; Nothing at this time + ) + "Lisp packages that are always dumped with XEmacs. +This includes every package that is loaded directly by a package listed +in dumped-lisp.el and is not itself listed.") + (setq preloaded-file-list (list "backquote" ; needed for defsubst etc. @@ -5,7 +13,6 @@ "find-paths" "packages" ; Bootstrap run-time lisp environment "setup-paths" - "dump-paths" "subr" ; load the most basic Lisp functions "post-gc" "replace" ; match-string used in version.el.
--- a/lisp/find-paths.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/find-paths.el Sat Mar 01 07:25:56 2003 +0000 @@ -3,6 +3,7 @@ ;; Copyright (C) 1985-1986, 1990, 1992-1997 Free Software Foundation, Inc. ;; Copyright (c) 1993, 1994 Sun Microsystems, Inc. ;; Copyright (C) 1995 Board of Trustees, University of Illinois +;; Copyright (C) 2003 Ben Wing. ;; Author: Mike Sperber <sperber@informatik.uni-tuebingen.de> ;; Maintainer: XEmacs Development Team @@ -99,35 +100,6 @@ (paths-find-recursive-path directories max-depth paths-no-lisp-directory-regexp)) -(defun paths-emacs-root-p (directory) - "Check if DIRECTORY is a plausible installation root." - (or - ;; installed - (paths-file-readable-directory-p (paths-construct-path (list directory - "lib" - (construct-emacs-version-name)))) - ;; in-place or windows-nt - (and - (paths-file-readable-directory-p (paths-construct-path (list directory "lisp"))) - (paths-file-readable-directory-p (paths-construct-path (list directory "etc")))))) - -(defun paths-emacs-data-root-p (directory) - "Check if DIRECTORY is a plausible data installation root. -A data installation root is one containing data files that may be shared -among multiple different versions of XEmacs, the packages in particular." - (or - ;; installed - (paths-file-readable-directory-p (paths-construct-path (list directory - "lib" - emacs-program-name))) - (paths-file-readable-directory-p (paths-construct-path (list directory - "lib" - (construct-emacs-version-name)))) - ;; in-place or windows-nt - (and - (paths-file-readable-directory-p (paths-construct-path (list directory "lisp"))) - (paths-file-readable-directory-p (paths-construct-path (list directory "etc")))))) - (defun paths-chase-symlink (file-name) "Chase a symlink until the bitter end." (let ((maybe-symlink (file-symlink-p file-name))) @@ -137,22 +109,6 @@ (paths-chase-symlink destination)) file-name))) -(defun paths-find-emacs-root - (invocation-directory invocation-name) - "Find the run-time root of XEmacs." - (let* ((executable-file-name (paths-chase-symlink - (concat invocation-directory - invocation-name))) - (executable-directory (file-name-directory executable-file-name)) - (maybe-root-1 (file-name-as-directory - (paths-construct-path '("..") executable-directory))) - (maybe-root-2 (file-name-as-directory - (paths-construct-path '(".." "..") executable-directory)))) - (or (and (paths-emacs-root-p maybe-root-1) - maybe-root-1) - (and (paths-emacs-root-p maybe-root-2) - maybe-root-2)))) - (defun paths-construct-path (components &optional expand-directory) "Convert list of path components COMPONENTS into a path. If EXPAND-DIRECTORY is non-NIL, use it as a directory to feed @@ -298,30 +254,4 @@ directories) directories))) -(defun paths-find-emacs-roots (invocation-directory - invocation-name - root-p) - "Find all plausible installation roots for XEmacs. -INVOCATION-DIRECTORY is the directory from which XEmacs was started. -INVOCATION-NAME is the name of the XEmacs executable that was originally -started. -ROOT-P is a function that tests whether a root is plausible." - (let* ((potential-invocation-root - (paths-find-emacs-root invocation-directory invocation-name)) - (invocation-roots - (and potential-invocation-root - (list potential-invocation-root))) - (potential-installation-roots - (paths-uniq-append - (and configure-exec-prefix-directory - (list (file-name-as-directory - configure-exec-prefix-directory))) - (and configure-prefix-directory - (list (file-name-as-directory - configure-prefix-directory))))) - (installation-roots - (paths-filter root-p potential-installation-roots))) - (paths-uniq-append invocation-roots - installation-roots))) - ;;; find-paths.el ends here
--- a/lisp/loadup.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/loadup.el Sat Mar 01 07:25:56 2003 +0000 @@ -39,6 +39,11 @@ (setq stack-trace-on-error t load-always-display-messages t) +;(princ (format "command-line-args: %s\n" command-line-args)) +;(princ (format "configure-lisp-directory: %S\n" configure-lisp-directory)) +;(princ (format "configure-data-directory: %S\n" configure-data-directory)) +;(princ (format "lisp-directory: %S\n" lisp-directory)) + (when (fboundp 'error) (error "loadup.el already loaded!")) @@ -50,6 +55,12 @@ (defvar Installation-string nil "Description of XEmacs installation.") +(defvar build-root (expand-file-name ".." invocation-directory)) +(defvar source-lisp (file-name-directory (expand-file-name + (nth 2 command-line-args)))) +(defvar source-root (expand-file-name ".." source-lisp)) +;(defvar build-lib-src (expand-file-name "lib-src" build-root)) + ;(start-profiling) (let ((gc-cons-threshold @@ -76,14 +87,14 @@ ;; insert-file-contents-internal bogusly calls ;; format-decode without checking if it's defined. (fset 'format-decode #'(lambda (f l &optional v) l)) - (insert-file-contents-internal "../Installation") + (insert-file-contents-internal + (expand-file-name "Installation" build-root)) (fmakunbound 'format-decode) (prog1 (buffer-substring) (kill-buffer (current-buffer))))) - (let ((build-root (expand-file-name ".." invocation-directory))) - (setq load-path (list (expand-file-name "lisp" build-root))) - (setq module-load-path (list (expand-file-name "modules" build-root)))) + (setq load-path (list source-lisp)) + (setq module-load-path (list (expand-file-name "modules" build-root))) ;; message not defined yet ... (external-debugging-output (format "\nUsing load-path %s" load-path)) @@ -133,7 +144,7 @@ ;;(print (format "guessed-data-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name #'paths-emacs-data-root-p))) nil))) - (load (expand-file-name "../lisp/dumped-lisp.el")) + (load (expand-file-name "dumped-lisp.el" source-lisp)) (let ((files preloaded-file-list) file) @@ -212,69 +223,6 @@ ;(stop-profiling) -;; yuck! need to insert the function def here, and rewrite the dolist -;; loop below. - -;(defun loadup-profile-results (&optional info stream) -; "Print profiling info INFO to STREAM in a pretty format. -;If INFO is omitted, the current profiling info is retrieved using -; `get-profiling-info'. -;If STREAM is omitted, either a *Profiling Results* buffer or standard -; output are used, depending on whether the function was called -; interactively or not." -; (interactive) -; (setq info (if info -; (copy-alist info) -; (get-profiling-info))) -; (when (and (not stream) -; (interactive-p)) -; (pop-to-buffer (get-buffer-create "*Profiling Results*")) -; (erase-buffer)) -; (let ((standard-output (or stream (if (interactive-p) -; (current-buffer) -; standard-output))) -; ;; Calculate the longest function -; (maxfunlen (apply #'max -; (length "Function Name") -; (mapcar -; (lambda (el) -; ;; Functions longer than 50 characters (usually -; ;; anonymous functions) don't qualify -; (let ((l (length (format "%s" (car el))))) -; (if (< l 50) -; l 0))) -; info)))) -; (princ (format "%-*s Ticks %%/Total Call Count\n" -; maxfunlen "Function Name")) -; (princ (make-string maxfunlen ?=)) -; (princ " ===== ======= ==========\n") -; (let ((sum (float (apply #'+ (mapcar #'cdr info))))) -; (let (entry -; (entry-list (nreverse (sort info #'cdr-less-than-cdr)))) -; (while entry-list -; (setq entry (car entry-list)) -; (princ (format "%-*s %-5d %-6.3f %s\n" -; maxfunlen (car entry) (cdr entry) -; (* 100 (/ (cdr entry) sum)) -; (or (gethash (car entry) call-count-profile-table) -; ""))) -; (setq entry-list (cdr entry-list)))) -; (princ (make-string maxfunlen ?-)) -; (princ "---------------------------------\n") -; (princ (format "%-*s %-5d %-6.2f\n" maxfunlen "Total" sum 100.0)) -; (princ (format "\n\nOne tick = %g ms\n" -; (/ default-profiling-interval 1000.0))) -; (and (boundp 'internal-error-checking) -; internal-error-checking -; (princ " -;WARNING: Error checking is turned on in this XEmacs. This might make -; the measurements very unreliable.\n")))) -; (when (and (not stream) -; (interactive-p)) -; (goto-char (point-min)))) - -;(loadup-profile-results nil 'external-debugging-output) - ;; Dump into the name `xemacs' (only) (when (member "dump" command-line-args) (message "Dumping under the name xemacs")
--- a/lisp/make-docfile.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/make-docfile.el Sat Mar 01 07:25:56 2003 +0000 @@ -4,7 +4,7 @@ ;; Copyright (C) 2002, 2003 Ben Wing. ;; Author: Unknown -;; Maintainer: Steven L Baur <steve@xemacs.org> +;; Maintainer: XEmacs Development Team ;; Keywords: internal ;; This file is part of XEmacs. @@ -45,6 +45,12 @@ (defvar site-file-list nil) (defvar docfile-out-of-date nil) +(defvar build-root (expand-file-name ".." invocation-directory)) +(defvar build-lib-src (expand-file-name "lib-src" build-root)) +(defvar source-lisp (file-name-directory (expand-file-name + (nth 2 command-line-args)))) +(defvar source-src (expand-file-name "../src" source-lisp)) + (defun message (fmt &rest args) (princ (apply #'format fmt args)) (terpri)) @@ -73,7 +79,7 @@ ;; (message (concat "Options: " (prin1-to-string options))) ;; insert-file-contents-internal calls out to `format-decode' afterwards, -;; so it must be defined. if non-zero, it tries to be a bunch more stuff +;; so it must be defined. if non-zero, it tries to do a bunch more stuff ;; so say, "NOOOOOOOOOOOOO! Basta! Ca soufit! Enough, already, OK?" (defun format-decode (fuck me harder) 0) @@ -118,33 +124,34 @@ (when (and (not (string-match "\\(NEEDTODUMP\\|\\.exe$\\)" arg)) (not (member arg processed))) (when (string-match "\\(.*\\)\\.obj$" arg) - (setq arg (concat (file-name-nondirectory - ;; no match-string so use its implementation. - (substring arg (match-beginning 1) - (match-end 1))) - ".c"))) + (setq arg (expand-file-name + (concat + (file-name-nondirectory + ;; no match-string so use its implementation. + (substring arg (match-beginning 1) + (match-end 1))) + ".c") + source-src))) (if (and (null docfile-out-of-date) (file-newer-than-file-p arg docfile)) (setq docfile-out-of-date t)) (setq processed (cons arg processed)))) (setq args (cdr args))))) +;; Then process the list of Lisp files. (process-args command-line-args) -;; Then process the list of Lisp files. -(let ((build-root (expand-file-name ".." invocation-directory))) - (setq load-path (list (expand-file-name "lisp" build-root)))) +(setq load-path (list source-lisp)) ;; Then process the autoloads (setq autoload-file-name "auto-autoloads.elc") (load "find-paths.el") (load "packages.el") (load "setup-paths.el") -(load "dump-paths.el") (load "raw-process.el") (let (preloaded-file-list) - (load (expand-file-name "../lisp/dumped-lisp.el")) + (load (expand-file-name "dumped-lisp.el" source-lisp)) (let ((package-preloaded-file-list (packages-collect-package-dumped-lisps late-package-load-path))) @@ -216,7 +223,7 @@ (message "Spawning make-docfile ...") ;; (message (prin1-to-string (append options processed))) - (setq exec-path (list (concat default-directory "../lib-src"))) + (setq exec-path (list build-lib-src)) ;; (locate-file-clear-hashing nil) (if (memq system-type '(berkeley-unix next-mach)) @@ -232,12 +239,13 @@ (mapconcat #'identity (append - (list (concat default-directory "../lib-src/make-docfile")) + (list (expand-file-name "make-docfile" build-lib-src)) options processed) " ")) ;; (message (prin1-to-string (append options processed))) (apply 'call-process-internal - ;; (concat default-directory "../lib-src/make-docfile") + ;; exec-path is set. + ;; (expand-file-name "make-docfile" build-lib-src) "make-docfile" nil t @@ -247,7 +255,6 @@ (message "Spawning make-docfile ...done") ;; (write-region-internal (point-min) (point-max) "/tmp/DOC") ) -(message "DOC file is up to date") (kill-emacs)
--- a/lisp/packages.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/packages.el Sat Mar 01 07:25:56 2003 +0000 @@ -1,7 +1,7 @@ ;;; packages.el --- Low level support for XEmacs packages ;; Copyright (C) 1997 Free Software Foundation, Inc. -;; Copyright (C) 2002 Ben Wing. +;; Copyright (C) 2002, 2003 Ben Wing. ;; Author: Steven L Baur <steve@xemacs.org> ;; Maintainer: Steven L Baur <steve@xemacs.org> @@ -158,31 +158,7 @@ (defvar autoload-file-name "auto-autoloads.el" "Filename that autoloads are expected to be found in.") -(defvar packages-hardcoded-lisp - '( - ;; Nothing at this time - ) - "Lisp packages that are always dumped with XEmacs. -This includes every package that is loaded directly by a package listed -in dumped-lisp.el and is not itself listed.") - -(defvar packages-useful-lisp - '("bytecomp" - "byte-optimize" - "autoload" - "shadow" - "cl-macs") - "Lisp packages that need early byte compilation.") - -(defvar packages-unbytecompiled-lisp - '("paths.el" - "dumped-lisp.el" - "dumped-pkg-lisp.el" - "version.el") - "Lisp packages that should not be byte compiled.") - - -;; Copied from help.el, could possibly move it to here permanently. +;; Moved from help.el. ;; Unlike the FSF version, our `locate-library' uses the `locate-file' ;; primitive, which should make it lightning-fast.
--- a/lisp/setup-paths.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/setup-paths.el Sat Mar 01 07:25:56 2003 +0000 @@ -3,6 +3,7 @@ ;; Copyright (C) 1985-1986, 1990, 1992-1997 Free Software Foundation, Inc. ;; Copyright (c) 1993, 1994 Sun Microsystems, Inc. ;; Copyright (C) 1995 Board of Trustees, University of Illinois +;; Copyright (C) 2003 Ben Wing. ;; Author: Mike Sperber <sperber@informatik.uni-tuebingen.de> ;; Maintainer: XEmacs Development Team @@ -36,8 +37,56 @@ ;; This file doesn't actually do anything. ;; It requires find-paths.el and packages.el. + +;;; Code: + +;(setq debug-paths t) + -;;; Code: +;;; Path-related variables. +;;; NOTE: Many of them (`lisp-directory', `data-directory', etc.) are +;;; built-in. + +(defvar emacs-roots nil + "List of plausible roots of the XEmacs hierarchy. +This is a list of plausible directories in which to search for the important +directories used by XEmacs at run-time, for example `exec-directory', +`data-directory' and `lisp-directory'. + +Normally set at startup by calling `paths-find-emacs-roots'.") + +(defvar emacs-data-roots nil + "List of plausible data roots of the XEmacs hierarchy.") + +(defvar user-init-directory-base ".xemacs" + "Base of directory where user-installed init files may go.") + +(defvar user-init-directory + (file-name-as-directory + (paths-construct-path (list "~" user-init-directory-base))) + "Directory where user-installed init files may go.") + +(defvar user-init-file-base "init.el" + "Default name of the user init file if uncompiled. +This should be used for migration purposes only.") + +(defvar user-init-file-base-list '("init.el") + "List of allowed init files in the user's init directory. +The first one found takes precedence. .elc files do not need to be listed.") + +(defvar user-home-init-file-base-list + (append '(".emacs.el" ".emacs") + (and (eq system-type 'windows-nt) + '("_emacs.el" "_emacs"))) + "List of allowed init files in the user's home directory. +The first one found takes precedence. .elc files do not need to be listed.") + +(defvar load-home-init-file nil + "Non-nil if XEmacs should load the init file from the home directory. +Otherwise, XEmacs will offer migration to the init directory.") + +(defvar load-user-init-file-p t + "Non-nil if XEmacs should load the user's init file.") (defvar paths-core-load-path-depth 0 "Depth of load-path searches in core Lisp paths.") @@ -59,6 +108,81 @@ ("usr" "share" "info"))) "Directories appended to the end of the info path by default.") + +;;; Basic utility functions. + +(defun paths-emacs-root-p (directory) + "Check if DIRECTORY is a plausible installation root." + (or + ;; installed + (paths-file-readable-directory-p (paths-construct-path (list directory + "lib" + (construct-emacs-version-name)))) + ;; in-place or windows-nt. windows-nt equivalent of --srcdir is + ;; BUILD_DIR in config.inc, and has no lisp/ or etc/ since symlinks + ;; don't exist. instead, xemacs.mak points configure-lisp-directory and + ;; configure-data-directory at the right places. + (and + (or configure-exec-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lib-src")))) + (or configure-lisp-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lisp")))) + (or configure-data-directory (paths-file-readable-directory-p (paths-construct-path (list directory "etc"))))))) + +(defun paths-emacs-data-root-p (directory) + "Check if DIRECTORY is a plausible data installation root. +A data installation root is one containing data files that may be shared +among multiple different versions of XEmacs, the packages in particular." + (or + ;; installed + (paths-file-readable-directory-p (paths-construct-path (list directory + "lib" + emacs-program-name))) + (paths-file-readable-directory-p (paths-construct-path (list directory + "lib" + (construct-emacs-version-name)))) + ;; in-place or windows-nt + (and + (paths-file-readable-directory-p (paths-construct-path (list directory "lisp"))) + (paths-file-readable-directory-p (paths-construct-path (list directory "etc")))))) + +(defun paths-find-emacs-root (invocation-directory invocation-name) + "Find the run-time root of XEmacs." + (let* ((executable-file-name (paths-chase-symlink + (concat invocation-directory + invocation-name))) + (executable-directory (file-name-directory executable-file-name)) + (maybe-root-1 (file-name-as-directory + (paths-construct-path '("..") executable-directory))) + (maybe-root-2 (file-name-as-directory + (paths-construct-path '(".." "..") executable-directory)))) + (or (and (paths-emacs-root-p maybe-root-1) + maybe-root-1) + (and (paths-emacs-root-p maybe-root-2) + maybe-root-2)))) + +(defun paths-find-emacs-roots (root-p) + "Find all plausible installation roots for XEmacs. +This is a list of plausible directories in which to search for the important +directories used by XEmacs at run-time, for example `exec-directory', +`data-directory' and `lisp-directory'. +ROOT-P is a function that tests whether a root is plausible." + (let* ((potential-invocation-root + (paths-find-emacs-root invocation-directory invocation-name)) + (invocation-roots + (and potential-invocation-root + (list potential-invocation-root))) + (potential-installation-roots + (paths-uniq-append + (and configure-exec-prefix-directory + (list (file-name-as-directory + configure-exec-prefix-directory))) + (and configure-prefix-directory + (list (file-name-as-directory + configure-prefix-directory))))) + (installation-roots + (paths-filter root-p potential-installation-roots))) + (paths-uniq-append invocation-roots + installation-roots))) + (defun paths-find-site-lisp-directory (roots) "Find the site Lisp directory of the XEmacs hierarchy." (paths-find-site-directory roots "site-lisp" @@ -202,4 +326,222 @@ (list data-directory) (packages-find-package-data-path last-packages))) + +;;; High-level functions to set up the paths. + +(defun startup-find-load-path (&optional inhibit-packages + set-global-package-paths) + "Determine the value for `load-path'. +INHIBIT-PACKAGES says which types of packages, if any, to omit from the +returned value. It can be `t' (omit all), one of the symbols `early', +`late', or `last', or a list of one or more of the symbols. + +If SET-GLOBAL-PACKAGE-PATHS is non-nil, initialize the global package path +variables referring to the particular types of packages (`early-packages', +`early-package-load-path', `late-packages', `late-package-load-path', +`last-packages', `last-package-load-path')." + (let (earlyp latep lastp earlyp-lp latep-lp lastp-lp) + (apply #'(lambda (early late last) + (setq earlyp (and (not (memq 'early inhibit-packages)) early)) + (setq latep (and (not (memq 'late inhibit-packages)) late)) + (setq lastp (and (not (memq 'last inhibit-packages)) last))) + (packages-find-packages + emacs-data-roots + (packages-compute-package-locations user-init-directory))) + + (setq earlyp-lp (packages-find-package-load-path earlyp)) + (setq latep-lp (packages-find-package-load-path latep)) + (setq lastp-lp (packages-find-package-load-path lastp)) + + (when set-global-package-paths + (setq early-packages earlyp + late-packages latep + last-packages lastp + early-package-load-path earlyp-lp + late-package-load-path latep-lp + last-package-load-path lastp-lp)) + + (paths-construct-load-path emacs-roots earlyp-lp latep-lp lastp-lp + lisp-directory site-directory + mule-lisp-directory))) + +(defun startup-setup-paths (&optional inhibit-packages called-early) + "Setup all the various paths. +INHIBIT-PACKAGES says which types of packages, if any, to omit from the +returned value. It can be `t' (omit all), one of the symbols `early', +`late', or `last', or a list of one or more of the symbols. + +This function is idempotent, so call this as often as you like!" + + (setq debug-paths (or debug-paths + (and (getenv "EMACSDEBUGPATHS") + t))) + + (setq emacs-roots (paths-find-emacs-roots #'paths-emacs-data-root-p)) + + (setq emacs-data-roots (paths-find-emacs-roots #'paths-emacs-data-root-p)) + + (if (null emacs-roots) + (save-excursion + (set-buffer (get-buffer-create " *warning-tmp*")) + (erase-buffer) + (buffer-disable-undo (current-buffer)) + + (insert "Couldn't find an obvious default for the root of the\n" + "XEmacs hierarchy.") + + (princ "\nWARNING:\n" 'external-debugging-output) + (princ (buffer-string) 'external-debugging-output))) + + (if (eq inhibit-packages t) + (setq inhibit-packages '(early late last))) + (if (not (listp inhibit-packages)) + (setq inhibit-packages (list inhibit-packages))) + + (when debug-paths + (princ (format +"startup-setup-paths arguments: + inhibit-packages: %S + inhibit-site-lisp: %S + called-early: %S +" inhibit-packages inhibit-site-lisp called-early) + 'external-debugging-output) + (princ (format +"emacs-roots: +%S +emacs-data-roots: +%S +user-init-directory: %S +configure-package-path: %S +" emacs-roots emacs-data-roots user-init-directory configure-package-path) + 'external-debugging-output) + ) + + (setq lisp-directory (paths-find-lisp-directory emacs-roots)) + + (if debug-paths + (princ (format "lisp-directory:\n%S\n" lisp-directory) + 'external-debugging-output)) + + (if (featurep 'mule) + (progn + (setq mule-lisp-directory + (paths-find-mule-lisp-directory emacs-roots + lisp-directory)) + (if debug-paths + (princ (format "mule-lisp-directory:\n%S\n" + mule-lisp-directory) + 'external-debugging-output))) + (setq mule-lisp-directory '())) + + (setq site-directory (and (null inhibit-site-lisp) + (paths-find-site-lisp-directory emacs-roots))) + + (if (and debug-paths (null inhibit-site-lisp)) + (princ (format "site-directory:\n%S\n" site-directory) + 'external-debugging-output)) + + (setq load-path (startup-find-load-path inhibit-packages t)) + + (when debug-paths + (princ (format "early-packages and early-package-load-path:\n%S\n%S\n" + early-packages early-package-load-path) + 'external-debugging-output) + (princ (format "late-packages and late-package-load-path:\n%S\n%S\n" + late-packages late-package-load-path) + 'external-debugging-output) + (princ (format "last-packages and last-package-load-path:\n%S\n%S\n" + last-packages last-package-load-path) + 'external-debugging-output)) + + (if debug-paths + (princ (format "load-path:\n%S\n" load-path) + 'external-debugging-output)) + (setq module-directory (paths-find-module-directory emacs-roots)) + (if debug-paths + (princ (format "module-directory:\n%S\n" module-directory) + 'external-debugging-output)) + (setq site-module-directory (and (null inhibit-site-modules) + (paths-find-site-module-directory + emacs-roots))) + (if (and debug-paths (null inhibit-site-modules)) + (princ (format "site-module-directory:\n%S\n" + site-module-directory) + 'external-debugging-output)) + + (setq module-load-path (paths-construct-module-load-path + emacs-roots + module-directory + site-module-directory)) + + (unless called-early + (setq Info-directory-list + (paths-construct-info-path + emacs-roots early-packages late-packages last-packages)) + + (if debug-paths + (princ (format "Info-directory-list:\n%S\n" Info-directory-list) + 'external-debugging-output)) + + (setq exec-directory (paths-find-exec-directory emacs-roots)) + + (if debug-paths + (princ (format "exec-directory:\n%s\n" exec-directory) + 'external-debugging-output)) + + (setq exec-path + (paths-construct-exec-path emacs-roots exec-directory + early-packages late-packages + last-packages)) + + (if debug-paths + (princ (format "exec-path:\n%S\n" exec-path) + 'external-debugging-output)) + + (setq doc-directory (paths-find-doc-directory emacs-roots)) + + (if debug-paths + (princ (format "doc-directory:\n%S\n" doc-directory) + 'external-debugging-output)) + + (setq data-directory (paths-find-data-directory emacs-roots)) + + (if debug-paths + (princ (format "data-directory:\n%S\n" data-directory) + 'external-debugging-output)) + + (setq data-directory-list (paths-construct-data-directory-list + data-directory early-packages + late-packages last-packages)) + (if debug-paths + (princ (format "data-directory-list:\n%S\n" data-directory-list) + 'external-debugging-output)))) + +(defun startup-find-load-path-for-packages (packages) + "Return a suitable load-path for PACKAGES. +PACKAGES is a list of package names (strings). This looks for package +directories in the load path whose last component is one of the members of +PACKAGES." + (mapcan + #'(lambda (package) + (and (member (file-name-nondirectory (directory-file-name package)) + packages) + (list package))) + (startup-find-load-path))) + +; (defun startup-set-basic-packages-load-path () +; "#### This is a hack. When recompiling .el files, we use -no-packages +; to avoid problems with packages shadowing standard Lisp files +; (e.g. unicode.el), but we really still need the stuff in xemacs-base and +; xemacs-devel, which SHOULD NOT be in the packages." +; (setq load-path (startup-find-load-path-for-packages +; '("xemacs-base" "xemacs-devel")))) + + +;;; Now actually set the paths up, for bootstrapping purposes. This is run +;;; at early dump time and in certain cases where we use a minimal temacs +;;; to do useful things, like rebuild DOC. + +(startup-setup-paths (if inhibit-all-packages t '(early last)) t) + ;;; setup-paths.el ends here
--- a/lisp/startup.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/startup.el Sat Mar 01 07:25:56 2003 +0000 @@ -3,7 +3,7 @@ ;; Copyright (C) 1985-1986, 1990, 1992-1997 Free Software Foundation, Inc. ;; Copyright (c) 1993, 1994 Sun Microsystems, Inc. ;; Copyright (C) 1995 Board of Trustees, University of Illinois -;; Copyright (C) 2001, 2002 Ben Wing. +;; Copyright (C) 2001, 2002, 2003 Ben Wing. ;; Maintainer: XEmacs Development Team ;; Keywords: internal, dumped @@ -130,42 +130,6 @@ (defconst initial-major-mode 'lisp-interaction-mode "Major mode command symbol to use for the initial *scratch* buffer.") -(defvar emacs-roots nil - "List of plausible roots of the XEmacs hierarchy.") - -(defvar emacs-data-roots nil - "List of plausible data roots of the XEmacs hierarchy.") - -(defvar user-init-directory-base ".xemacs" - "Base of directory where user-installed init files may go.") - -(defvar user-init-directory - (file-name-as-directory - (paths-construct-path (list "~" user-init-directory-base))) - "Directory where user-installed init files may go.") - -(defvar user-init-file-base "init.el" - "Default name of the user init file if uncompiled. -This should be used for migration purposes only.") - -(defvar user-init-file-base-list '("init.elc" "init.el") - "List of allowed init files in the user's init directory. -The first one found takes precedence.") - -(defvar user-home-init-file-base-list - (append '(".emacs.elc" ".emacs.el" ".emacs") - (and (eq system-type 'windows-nt) - '("_emacs.elc" "_emacs.el" "_emacs"))) - "List of allowed init files in the user's home directory. -The first one found takes precedence.") - -(defvar load-home-init-file nil - "Non-nil if XEmacs should load the init file from the home directory. -Otherwise, XEmacs will offer migration to the init directory.") - -(defvar load-user-init-file-p t - "Non-nil if XEmacs should load the user's init file.") - ;; #### called `site-run-file' in FSFmacs (defvar site-start-file "site-start" @@ -514,33 +478,11 @@ (initialize-xemacs-paths) (startup-set-invocation-environment) - - (let ((debug-paths (or debug-paths - (and (getenv "EMACSDEBUGPATHS") - t)))) - - (setq emacs-roots (paths-find-emacs-roots invocation-directory - invocation-name - #'paths-emacs-root-p)) - (setq emacs-data-roots (paths-find-emacs-roots invocation-directory - invocation-name - #'paths-emacs-data-root-p)) - - (if debug-paths - (princ (format "emacs-roots:\n%S\n" emacs-roots) - 'external-debugging-output)) - - (if (null emacs-roots) - (startup-find-roots-warning)) - (startup-setup-paths emacs-roots emacs-data-roots - user-init-directory - (cond (inhibit-all-packages t) - (inhibit-early-packages '(early)) - (t nil)) - inhibit-site-lisp - debug-paths - nil) - (startup-setup-paths-warning)) + (startup-setup-paths (cond (inhibit-all-packages t) + (inhibit-early-packages '(early)) + (t nil)) + nil) + (startup-setup-paths-warning) ;; Either we need to inhibit messages from do_autoloads, or this ;; should go into (command-line) after the initialization of the @@ -798,24 +740,42 @@ (setq term (substring term 0 hyphend)) (setq term nil)))))) +(defun find-init-file-1 (dir base-list) + (catch 'found + (dolist (file base-list) + (let ((expanded (expand-file-name file dir))) + (if (string-match "el$" expanded) + (let* ((elc (concat expanded "c")) + (el-ok (file-readable-p expanded)) + (elc-ok (file-readable-p elc))) + (cond + ((and el-ok elc-ok (file-newer-than-file-p expanded elc)) + (lwarn 'initialization 'warning + "\ +The compiled initialization file `%s' exists +but is out-of-date with respect to the uncompiled initialization +file `%s'. XEmacs will load the uncompiled +version. You should correct the problem as soon as possible by +loading the uncompiled version and compiling it using +`M-x byte-compile-file' (or `Lisp->Byte-Compile This File' on +the menubar)." + elc expanded) + (throw 'found expanded)) + (elc-ok (throw 'found elc)) + (el-ok (throw 'found expanded)))) + (when (file-readable-p + (when (file-readable-p expanded) + (throw 'found expanded))))))))) + (defun find-user-init-directory-init-file (&optional init-directory) "Determine the user's init file if in the init directory." - (let ((init-directory (or init-directory user-init-directory))) - (catch 'found - (dolist (file user-init-file-base-list) - (let ((expanded (expand-file-name file init-directory))) - (when (file-readable-p expanded) - (throw 'found expanded))))))) + (find-init-file-1 (or init-directory user-init-directory) + user-init-file-base-list)) (defun find-user-home-directory-init-file (&optional home-directory) "Determine the user's init file if in the home directory." - (let ((home-directory (or home-directory "~"))) - (catch 'found - (dolist (file user-home-init-file-base-list) - (let ((expanded (expand-file-name file home-directory))) - (when (file-readable-p expanded) - (throw 'found expanded)))) - nil))) + (find-init-file-1 (or home-directory "~") + user-home-init-file-base-list)) (defun find-user-init-file (&optional init-directory home-directory) "Determine the user's init file." @@ -1388,18 +1348,6 @@ ;; don't let /tmp_mnt/... get into the load-path or exec-path. (abbreviate-file-name invocation-directory))) -(defun startup-find-roots-warning () - (save-excursion - (set-buffer (get-buffer-create " *warning-tmp*")) - (erase-buffer) - (buffer-disable-undo (current-buffer)) - - (insert "Couldn't find an obvious default for the root of the\n" - "XEmacs hierarchy.") - - (princ "\nWARNING:\n" 'external-debugging-output) - (princ (buffer-string) 'external-debugging-output))) - (defun startup-setup-paths-warning () (let ((warnings '())) (cond
--- a/lisp/update-elc-2.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/update-elc-2.el Sat Mar 01 07:25:56 2003 +0000 @@ -147,17 +147,22 @@ ;; update-elc.el signals us to rebuild the autoloads when necessary. ;; in some cases it will rebuild the autoloads itself, but doing it this ;; way is slow, so we avoid it when possible. - (when (file-exists-p "../src/REBUILD_AUTOLOADS") + (when (file-exists-p (expand-file-name "REBUILD_AUTOLOADS" + invocation-directory)) (let ((generated-autoload-file (expand-file-name "auto-autoloads.el" dir)) (autoload-package-name "auto")) ; feature prefix - (update-autoload-files (list dir)) + ;; if we were instructed to rebuild the autoloads, force the file + ;; to be touched even w/o changes; otherwise, we won't ever stop + ;; being told to rebuild them. + (update-autoload-files (list dir) nil t) (byte-recompile-file generated-autoload-file 0)) (when (featurep 'mule) (let* ((muledir (expand-file-name "../lisp/mule" (file-truename dir))) (generated-autoload-file (expand-file-name "auto-autoloads.el" muledir)) (autoload-package-name "mule")) ; feature prefix - (update-autoload-files (list muledir)) + ;; force here just like above. + (update-autoload-files (list muledir) nil t) (byte-recompile-file generated-autoload-file 0)))) (when (featurep 'modules) (let* ((moddir (expand-file-name "../modules" (file-truename dir))) @@ -172,9 +177,9 @@ (byte-recompile-file generated-autoload-file 0))) ;; now load the (perhaps newly rebuilt) autoloads; we were called with ;; -no-autoloads so they're not already loaded. - (load "../lisp/auto-autoloads") + (load (expand-file-name "auto-autoloads" lisp-directory)) (when (featurep 'mule) - (load "../lisp/mule/auto-autoloads")) + (load (expand-file-name "mule/auto-autoloads" lisp-directory))) ;; We remove all the bad .elcs before any byte-compilation, because ;; there may be dependencies between one .el and another (even across ;; directories), and we don't want to load an out-of-date .elc while
--- a/lisp/update-elc.el Fri Feb 28 22:52:30 2003 +0000 +++ b/lisp/update-elc.el Sat Mar 01 07:25:56 2003 +0000 @@ -58,10 +58,10 @@ (defvar need-to-rebuild-mule-autoloads nil) (defvar need-to-recompile-autoloads nil) (defvar need-to-recompile-mule-autoloads nil) -(defvar undumped-exe nil) -;(defvar dumped-exe nil) -(defvar dumped-exe-out-of-date-wrt-dump-files nil) -;(defvar dumped-exe-out-of-date-wrt-undumped-exe nil) +(defvar exe-target nil) +(defvar dump-target nil) +(defvar dump-target-out-of-date-wrt-dump-files nil) +;(defvar dump-target-out-of-date-wrt-exe-target nil) ;(setq update-elc-files-to-compile ; (delq nil @@ -78,13 +78,22 @@ ; ;; -batch gets filtered out. ; (nthcdr 3 command-line-args)))) -(let ((build-root (expand-file-name ".." invocation-directory))) - (setq load-path (list (expand-file-name "lisp" build-root)))) + +(defvar build-root (expand-file-name ".." invocation-directory)) +(defvar source-lisp (file-name-directory (expand-file-name + (nth 2 command-line-args)))) +(defvar source-lisp-mule (expand-file-name "mule" source-lisp)) +(defvar source-root (expand-file-name ".." source-lisp)) +(defvar aa-lisp (expand-file-name "auto-autoloads.el" source-lisp)) +(defvar aac-lisp (expand-file-name "auto-autoloads.elc" source-lisp)) +(defvar aa-lisp-mule (expand-file-name "auto-autoloads.el" source-lisp-mule)) +(defvar aac-lisp-mule (expand-file-name "auto-autoloads.elc" source-lisp-mule)) + +(setq load-path (list source-lisp)) (load "find-paths.el") (load "packages.el") (load "setup-paths.el") -(load "dump-paths.el") ;; #### take out in my fixup ws ;; Lisp files loaded in order to byte compile anything. If any are out of ;; date, we need to load them as .el's, byte compile them, and reload as @@ -126,38 +135,39 @@ (let (preloaded-file-list site-load-packages files-to-process) - (load (expand-file-name "../lisp/dumped-lisp.el")) - - (setq dumped-exe - (cond ((file-exists-p "../src/xemacs.exe") "../src/xemacs.exe") - ((file-exists-p "../src/xemacs") "../src/xemacs") - (t nil))) + (load (expand-file-name "dumped-lisp.el" source-lisp)) - ;; Not currently used but might be at some point. -; (let ((temacs-exe -; (cond ((file-exists-p "../src/temacs.exe") "../src/temacs.exe") -; ((file-exists-p "../src/temacs") "../src/temacs") -; (t nil))) -; (data-file -; (cond ((file-exists-p "../src/xemacs.dmp") "../src/xemacs.dmp") -; (t nil)))) + ;; two setups here: + ;; (1) temacs.exe is undumped, dumped into xemacs.exe. Happens with + ;; unexec, but also with pdump under MS Windows native, since + ;; the dumped data is stored as a resource in the xemacs.exe + ;; executable. + ;; (2) xemacs.exe is dumped or undumped. Running `xemacs -nd' gets + ;; you the equivalent of `temacs'. Dumping creates a file + ;; `xemacs.dmp'. -; ;; two setups here: -; ;; (1) temacs.exe is undumped, dumped into xemacs.exe. Happens with -; ;; unexec, but also with pdump under MS Windows native, since -; ;; the dumped data is stored as a resource in the xemacs.exe -; ;; executable. -; ;; (2) xemacs.exe is dumped or undumped. Running `xemacs -nd' gets -; ;; you the equivalent of `temacs'. Dumping creates a file -; ;; `xemacs.dmp'. + (cond ((eq system-type 'windows-nt) + (setq exe-target "src/temacs.exe" + dump-target "src/xemacs.exe")) + ;; #### need better ways of getting config params + ((not (memq 'pdump (emacs-run-status))) + (setq exe-target "src/temacs" + dump-target "src/xemacs")) + (t + (setq exe-target "src/xemacs" + dump-target "src/xemacs.dmp"))) -; (setq dumped-exe-out-of-date-wrt-undumped-exe -; (cond ((not dumped-exe) t) -; (temacs-exe (file-newer-than-file-p temacs-exe dumped-exe)) -; ((not data-file) t) -; (t (file-newer-than-file-p dumped-exe data-file)))) -; (setq dumped-exe-exists (or (and temacs-exe dumped-exe) -; (and data-file dumped-exe)))) + (setq exe-target (expand-file-name exe-target build-root)) + (setq dump-target (expand-file-name dump-target build-root)) + + ;; Not currently used. +; (setq dump-target-out-of-date-wrt-exe-target +; (cond ((not dump-target) t) +; (temacs-exe (file-newer-than-file-p temacs-exe dump-target)) +; ((not data-file) t) +; (t (file-newer-than-file-p dump-target data-file)))) +; (setq dump-target-exists (or (and temacs-exe dump-target) +; (and data-file dump-target)))) ;; Path setup (let ((package-preloaded-file-list @@ -168,7 +178,7 @@ preloaded-file-list packages-hardcoded-lisp))) - (load (concat default-directory "../site-packages") t t) + (load (expand-file-name "site-packages" source-root) t t) (setq preloaded-file-list (append packages-hardcoded-lisp preloaded-file-list @@ -203,12 +213,12 @@ ;; now check if .el or .elc is newer than the dumped exe. ;; if so, need to redump. - (when (and dumped-exe arg-is-preloaded + (when (and dump-target arg-is-preloaded ;; no need to check for existence of either of the files ;; because of the definition of file-newer-than-file-p. - (or (file-newer-than-file-p full-arg-el dumped-exe) - (file-newer-than-file-p full-arg-elc dumped-exe))) - (setq dumped-exe-out-of-date-wrt-dump-files t)) + (or (file-newer-than-file-p full-arg-el dump-target) + (file-newer-than-file-p full-arg-elc dump-target))) + (setq dump-target-out-of-date-wrt-dump-files t)) (if (and (not (member (file-name-nondirectory arg) unbytecompiled-lisp-files)) @@ -222,14 +232,14 @@ ;; Check if we need to rebuild the auto-autoloads.el files -- that is, ;; if ANY .el files have changed. - (let ((dirs-to-check '("../lisp" "../lisp/mule"))) + (let ((dirs-to-check (list source-lisp source-lisp-mule))) (while dirs-to-check (let* ((dir (car dirs-to-check)) (full-dir (expand-file-name dir)) (all-files-in-dir (directory-files full-dir t "\\.el$" nil t)) (autoload-file (expand-file-name "auto-autoloads.el" full-dir)) - (autoload-is-mule (equal dir "../lisp/mule"))) + (autoload-is-mule (equal dir source-lisp-mule))) (while all-files-in-dir (let* ((full-arg (car all-files-in-dir))) ;; custom-load.el always gets regenerated so don't let that @@ -246,9 +256,10 @@ (setq all-files-in-dir (cdr all-files-in-dir)))) (setq dirs-to-check (cdr dirs-to-check)))) - (if dumped-exe-out-of-date-wrt-dump-files + (if dump-target-out-of-date-wrt-dump-files (condition-case nil - (write-region-internal "foo" nil "../src/NEEDTODUMP") + (write-region-internal + "foo" nil (expand-file-name "src/NEEDTODUMP" build-root)) (file-error nil))) ) @@ -258,20 +269,18 @@ ;; doesn't exist, need-to-rebuild-autoloads gets set above. but ;; it's only one call, so it won't slow things down much and it keeps ;; the logic cleaner. - (not (file-exists-p "../lisp/auto-autoloads.el")) + (not (file-exists-p aa-lisp)) ;; no need to check for file-exists of .elc due to definition ;; of file-newer-than-file-p - (file-newer-than-file-p "../lisp/auto-autoloads.el" - "../lisp/auto-autoloads.elc")) + (file-newer-than-file-p aa-lisp aac-lisp)) (setq need-to-recompile-autoloads t)) (when (or need-to-rebuild-mule-autoloads ;; not necessary but ... see comment above. - (not (file-exists-p "../lisp/mule/auto-autoloads.el")) + (not (file-exists-p aa-lisp-mule)) ;; no need to check for file-exists of .elc due to definition ;; of file-newer-than-file-p - (file-newer-than-file-p "../lisp/mule/auto-autoloads.el" - "../lisp/mule/auto-autoloads.elc")) + (file-newer-than-file-p aa-lisp-mule aac-lisp-mule)) (setq need-to-recompile-mule-autoloads t)) (when (not (featurep 'mule)) @@ -288,21 +297,21 @@ (append (if (or need-to-rebuild-autoloads need-to-rebuild-mule-autoloads) - '("-l" "autoload")) + (list "-l" "autoload")) (if need-to-rebuild-autoloads - '("-f" "autoload-update-directory-autoloads" - "auto" "../lisp")) + (list "-f" "autoload-update-directory-autoloads" + "auto" source-lisp)) (if need-to-rebuild-mule-autoloads - '("-f" "autoload-update-directory-autoloads" - "mule" "../lisp/mule")) + (list "-f" "autoload-update-directory-autoloads" + "mule" source-lisp-mule)) (if need-to-recompile-autoloads - '("-f" "batch-byte-compile-one-file" - "../lisp/auto-autoloads.el")) + (list "-f" "batch-byte-compile-one-file" + aa-lisp)) (if need-to-recompile-mule-autoloads - '("-f" "batch-byte-compile-one-file" - "../lisp/mule/auto-autoloads.el"))))) + (list "-f" "batch-byte-compile-one-file" + aa-lisp-mule))))) (condition-case nil - (delete-file "../src/REBUILD_AUTOLOADS") + (delete-file (expand-file-name "src/REBUILD_AUTOLOADS" build-root)) (file-error nil)) (cond ((and (not update-elc-files-to-compile) (not need-to-rebuild-autoloads) @@ -319,7 +328,8 @@ ;; the autoloads here when we have files to compile, since ;; they may depend on the updated autoloads.) (condition-case nil - (write-region-internal "foo" nil "../src/REBUILD_AUTOLOADS") + (write-region-internal + "foo" nil (expand-file-name "src/REBUILD_AUTOLOADS" build-root)) (file-error nil)) ) (t
--- a/lwlib/ChangeLog Fri Feb 28 22:52:30 2003 +0000 +++ b/lwlib/ChangeLog Sat Mar 01 07:25:56 2003 +0000 @@ -1,3 +1,8 @@ +2003-02-28 Ben Wing <ben@xemacs.org> + + * lwlib-Xm.c: + Fix compile warning. + 2003-02-16 Steve Youngs <youngs@xemacs.org> * XEmacs 21.5.11 "cabbage" is released.
--- a/lwlib/lwlib-Xm.c Fri Feb 28 22:52:30 2003 +0000 +++ b/lwlib/lwlib-Xm.c Sat Mar 01 07:25:56 2003 +0000 @@ -131,6 +131,8 @@ return instance; } +#ifdef LWLIB_DIALOGS_MOTIF + static void free_destroyed_instance (destroyed_instance* instance) { @@ -139,6 +141,8 @@ free (instance); } +#endif /* LWLIB_DIALOGS_MOTIF */ + /* motif utility functions */ Widget first_child (Widget widget) @@ -1019,6 +1023,8 @@ } +#ifdef LWLIB_DIALOGS_MOTIF + /* This function is for activating a button from a program. It's wrong because we pass a NULL argument in the call_data which is not Motif compatible. This is used from the XmNdefaultAction callback of the List widgets to @@ -1034,8 +1040,6 @@ /* creation functions */ -#ifdef LWLIB_DIALOGS_MOTIF - /* dialogs */ #if (XmVersion >= 1002)
--- a/nt/ChangeLog Fri Feb 28 22:52:30 2003 +0000 +++ b/nt/ChangeLog Sat Mar 01 07:25:56 2003 +0000 @@ -1,3 +1,152 @@ +2003-02-28 Ben Wing <ben@xemacs.org> + + * README: + * README (NOTE): Removed. + * config.inc.samp (HAVE_MS_WINDOWS): + * config.inc.samp (HAVE_X_WINDOWS): Removed. + * config.inc.samp (X11_DIR): Removed. + * config.inc.samp (COMPFACE_DIR): + * xemacs.mak (XEMACS): Removed. + * xemacs.mak (LISP): Removed. + * xemacs.mak (LIB_SRC): Removed. + * xemacs.mak (MODULES): Removed. + * xemacs.mak (NT): Removed. + * xemacs.mak (OUTDIR): Removed. + * xemacs.mak (SRC): Removed. + * xemacs.mak (LWLIB_SRCDIR): Removed. + * xemacs.mak (MAKEDIRSTRING): Removed. + * xemacs.mak (XEMACSDIRSTRING): Removed. + * xemacs.mak (MAKEROOT): New. + * xemacs.mak (COPYDIR): + * xemacs.mak (INFODOCK_VERSION_STRING): Removed. + * xemacs.mak (XEMACS_VERSION_STRING): Removed. + * xemacs.mak (SEPARATE_BUILD): New. + * xemacs.mak (SRCROOT): New. + * xemacs.mak (BLDROOT): New. + * xemacs.mak (PROGRAM_DEFINES): Removed. + * xemacs.mak (INSTALL_DIR): Removed. + * xemacs.mak (ETC): New. + * xemacs.mak (BLDLIB_SRC): New. + * xemacs.mak (BLDNT): New. + * xemacs.mak (BLDSRC): New. + * xemacs.mak (PACKAGE_PREFIX): Removed. + * xemacs.mak (PACKAGE_PATH): Removed. + * xemacs.mak (PATH_PACKAGEPATH): Removed. + * xemacs.mak (HAVE_X_WINDOWS): Removed. + * xemacs.mak (USE_CRTDLL): + * xemacs.mak (CONFIG_ERROR): + * xemacs.mak (OS): Removed. + * xemacs.mak (EMACS_CONFIGURATION): Removed. + * xemacs.mak (STACK_TRACE_EYE_CATCHER): Removed. + * xemacs.mak (CCV): Removed. + * xemacs.mak (DEBUG_FLAGS_COMPILE): Removed. + * xemacs.mak (DEBUG_FLAGS_LINK): Removed. + * xemacs.mak (DEBUG_DEFINES): Removed. + * xemacs.mak (BROWSERFLAGS): Removed. + * xemacs.mak (C_LIBFLAG): Removed. + * xemacs.mak (LIBC_LIB): Removed. + * xemacs.mak (OPTFLAGS_FASTCALL): Removed. + * xemacs.mak (OPTFLAGS_CDECL): Removed. + * xemacs.mak (PATH_PREFIX): New. + * xemacs.mak (OPTFLAGS): Removed. + * xemacs.mak (PROFILE_FLAGS): Removed. + * xemacs.mak (PATH_DEFINES): New. + * xemacs.mak (MSW_DEFINES): + * xemacs.mak (TEMACS_MSW_OBJS): New. + * xemacs.mak (CPLUSPLUS_COMPILE_FLAGS): Removed. + * xemacs.mak (CFLAGS_NO_OPT): Removed. + * xemacs.mak (CFLAGS_NO_LIB): Removed. + * xemacs.mak (CFLAGS): Removed. + * xemacs.mak (CFLAGS_CDECL_NO_LIB): Removed. + * xemacs.mak (CFLAGS_CDECL): Removed. + * xemacs.mak (X_DEFINES): Removed. + * xemacs.mak (TEMACS_MULE_OBJS): New. + * xemacs.mak (X_INCLUDES): Removed. + * xemacs.mak (X_LIBS): Removed. + * xemacs.mak (TEMACS_DEBUG_OBJS): New. + * xemacs.mak (TEMACS_DUMP_OBJS): New. + * xemacs.mak (TEMACS_ALLOC_OBJS): New. + * xemacs.mak (XEMACS_INCLUDES): Removed. + * xemacs.mak (LIB_SRC_DEFINES): Removed. + * xemacs.mak (INCLUDES): + * xemacs.mak (DEFINES): + * xemacs.mak (CONFIG_VALUES): Removed. + * xemacs.mak (TEMACS_CPP_FLAGS_NO_CFLAGS): + * xemacs.mak (TEMACS_ENTRYPOINT): Removed. + * xemacs.mak (TEMACS_DIR): Removed. + * xemacs.mak (TEMACS): Removed. + * xemacs.mak (TEMACS_BROWSE): Removed. + * xemacs.mak (TEMACS_SRC): Removed. + * xemacs.mak (TEMACS_CPP_CDECL_FLAGS): + * xemacs.mak (TEMACS_LIBS): Removed. + * xemacs.mak (TEMACS_OBJS): + * xemacs.mak (TEMACS_LFLAGS): Removed. + * xemacs.mak (LINK_DEPENDENCY_ARGS): Removed. + * xemacs.mak (LINK_STANDARD_LIBRARY_ARGS): Removed. + * xemacs.mak (ETAGS_DEPS): Removed. + * xemacs.mak (TEMACS_X_OBJS): Removed. + * xemacs.mak (LIB_SRC_TOOLS): Removed. + * xemacs.mak (LASTFILE): Removed. + * xemacs.mak (LASTFILE_SRC): Removed. + * xemacs.mak (LASTFILE_FLAGS): Removed. + * xemacs.mak (LASTFILE_OBJS): Removed. + * xemacs.mak (LWLIB): Removed. + * xemacs.mak (LWLIB_FLAGS): Removed. + * xemacs.mak (LWLIB_OBJS): Removed. + * xemacs.mak (.SUFFIXES): + * xemacs.mak (create-list-file): Removed. + * xemacs.mak (compile-list-file): Removed. + * xemacs.mak (TEMACS_DUMP_ID_OBJ): Removed. + * xemacs.mak (PROGNAME): Removed. + * xemacs.mak (DO_TEMACS): Removed. + * xemacs.mak (DO_XEMACS): Removed. + * xemacs.mak (BATCH): Removed. + * xemacs.mak (BATCH_PACKAGES): Removed. + * xemacs.mak (TEMACS_BATCH): Removed. + * xemacs.mak (XEMACS_BATCH): Removed. + * xemacs.mak (XEMACS_BATCH_PACKAGES): Removed. + * xemacs.mak (temacs_loadup_args): Removed. + * xemacs.mak (dump_temacs_args): Removed. + * xemacs.mak (run_temacs_args): Removed. + * xemacs.mak (dump_temacs): Removed. + * xemacs.mak (testdir): Removed. + * xemacs.mak (batch_test_emacs): Removed. + * xemacs.mak (check): Removed. + * xemacs.mak (check-temacs): Removed. + * xemacs.mak (MANDIR): + * xemacs.mak (check-features): Removed. + * xemacs.mak (tagslisp): Removed. + * xemacs.mak (tags): Removed. + * xemacs.mak (NEW_USERS_GUIDE_SRCS): + * xemacs.mak (makeinfo-test): + * xemacs.mak (installation): New. + * xemacs.mak (RAW_EXE): New. + * xemacs.mak (DUMP_TARGET): New. + * xemacs.mak (all): New. + * xemacs.mak (TEMACS_DUMP_DEP): New. + * xemacs.mak (DOC): + * xemacs.mak (docfile): + * xemacs.mak (update-elc): + * xemacs.mak (update-elc-2): + * xemacs.mak (load-shadows): + * xemacs.mak (temacs): Removed. + * xemacs.mak (install): + * xemacs.mak (versionclean): New. + * xemacs.mak (distclean): + * xemacs.mak (realclean): + * xemacs.mak (extraclean): + * xemacs.mak (depend): + * xemacs.mak (unicode-encapsulate): + -- Major reorganization and cleanup. + -- Add support for separated build tree and source tree. + -- Delete all support for X Windows building, since it's + totally bit-rotten and will never be fixed up. Instruct + people to use Cygwin if they want such support. + + * make-build-dir: + New script to create a skeleton build tree for use with + separated build and source tree compilation. + 2003-02-20 Ben Wing <ben@xemacs.org> * xemacs.dsp (CFG):
--- a/nt/README Fri Feb 28 22:52:30 2003 +0000 +++ b/nt/README Sat Mar 01 07:25:56 2003 +0000 @@ -68,51 +68,9 @@ Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages", for example "c:\Program Files\XEmacs\xemacs-packages". -3. At this point you can choose to build for X and/or for Win32 native GUI. - If you only want to build for the Win32 native GUI then skip the next - section. - - -** Extra tools and sources required for X - -NOTE: XEmacs has not been tested with X support under the native -Windows build for a long, long time! It may not even compile any -more. If you are interested in X support, you're better off compiling -the Cygwin version of XEmacs, which can handle both Win32 native and X -frames (in the same binary, in fact, but not at the same time), and is -actively tested with X support. - -If you want support for X you will also need: - -1. An X server. XEmacs has been tested and runs well under MI/X, - available from: http://www.microimages.com/mix/. (International aka - "Mule" support even works under this X server!) Unfortunately, this is - not free, but is trialware; you have to pay $25 if you want to use it - for more than 15 days. XEmacs also runs (barely) under the free XWin - server that comes as part of the Cygwin XFree86 package, available at - - ftp://sources.redhat.com/pub/cygwin/xfree/ - - or numerous mirrors, such as - - ftp://ftp.freesoftware.com/pub/sourceware/cygwin/xfree/ - - There are numerous other X servers available in the same package or at - the same location, but unfortunately most of them behave even worse - than XWin. If you have any luck with any of these, *PLEASE* email - the maintainers at xemacs-nt@xemacs.org, and we'll add the info here. - -2. Source for the MIT X11R6.3 libraries, available from ftp.x.org. - -3. You'll need to compile the MIT libraries without multi-thread support. - To do this, there is an example Win32.cf and site.def provided which set - the relevant flags. You will also need to apply the patch in nt/X11.patch - in the xc/lib/X11 directory which will fix the DLL definition file. - - Once compiled and installed, you will need to apply the patch in - nt/Xmd.patch. This is messy and better solutions would be appreciated. - -4. Goto step 2 under 'Optional libraries' below. +3. The native build no longer supports X Windows. There is no point, + since the Cygwin build is actively maintained and supports X Windows + very well. See the FAQ if you want to build with Cygwin. * Optional libraries @@ -192,12 +150,6 @@ HAVE_XFACE=1 COMPFACE_DIR="x:\location\of\your\compface\sources" - -- If you're building for X, modify the appropriate lines in config.inc - as follows: - - HAVE_X_WINDOWS=1 - X11_DIR=x:\root\directory\of\your\X11\installation - -- By default, XEmacs will expect to find its packages in the subdirectories "site-packages", "mule-packages" and "xemacs-packages" under the directory "c:\Program Files\XEmacs". If you want it to look @@ -227,7 +179,15 @@ (By default, XEmacs will be installed in directories under the directory "c:\Program Files\XEmacs\XEmacs-21.5".) -3. If you want to build xemacs on the command line, use +3. If you want the built files to go into a different tree than the source + tree (e.g. this allows you to build multiple versions of XEmacs, with + different configuration settings, from the same source tree), use the + script `make-build-dir' to create a skeleton build tree, create a + config.inc in that tree, and then run nmake from that tree. This is + similar to running `configure --srcdir=PATH' under Unix. See the + comments in `config.inc.samp' for more information. + +4. If you want to build xemacs on the command line, use `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want to run XEmacs from its build directory. nmake will build temacs, the DOC file, update the elc's, dump xemacs and (optionally) install the relevant @@ -243,7 +203,7 @@ You may want to create a shortcut to the file from your Desktop or Start Menu. -4. To build using MS Visual Studio, you can use the workspace file +5. To build using MS Visual Studio, you can use the workspace file `nt/xemacs.dsw'. This was prepared for Visual C++ 6.0. If you have a different version and neither file works, just open up `nt/xemacs.mak' from within Visual Studio and it will offer to wrap this Makefile in a
--- a/nt/config.inc.samp Fri Feb 28 22:52:30 2003 +0000 +++ b/nt/config.inc.samp Sat Mar 01 07:25:56 2003 +0000 @@ -18,15 +18,7 @@ # Native MS Windows support. HAVE_MS_WINDOWS=1 -# X Windows support. Not working at all and probably never will. If you -# want X support under MS Windows, compile with Cygwin instead. -HAVE_X_WINDOWS=0 -X11_DIR= - -# GTK support. Do NOT set this to 1; as of xemacs-21.5-b6 -# gtk-xemacs is not supported on MSWindows (mingw or msvc). -# Yes, we know that gtk has been ported to native MSWindows -# but XEmacs is not yet ready to use that port. +# GTK support. Do NOT set this to 1; this does not currently work. HAVE_GTK=0 GTK_DIR= @@ -74,6 +66,36 @@ # Build settings # ############################################################################ +# If you want to the built files to be placed outside of the source tree +# (e.g. this allows you to build multiple versions of XEmacs, with +# different configuration settings, from the same source tree), run +# `make-build-dir' to create a skeleton build tree, giving it the name of a +# path. This creates the specified directory and the `nt' directory below +# it, copies config.inc (if it exists), config.inc.samp and xemacs.mak into +# the `nt' directory, and modifies the config files to contain the path of +# the source tree in SOURCE_DIR. This will not overwrite files that +# already exist, so it can safely be run more than once on the same tree. +# +# Running nmake in the skeleton build tree will then build XEmacs in that +# directory tree, using the source files as specified. The paths of the +# `lisp' and `etc' directories in the source tree will be compiled into the +# executable as "last-resort" values -- i.e. they will be used if you +# simply run the executable as-is, but will not override any local copy of +# the `lisp' and/or `etc' directories that you may have made. +# +# Alternatively, you can just uncomment the line below for BUILD_DIR and +# specify a (possibly non-existent) path. Running nmake will then put its +# build files into a parallel directory structure underneath the specified +# path, creating the directories as necessary. The problem with this is +# that the first method above allows you to have a different copy of +# `config.inc' for each build directory, but doing it this way means you +# have only one version of config.inc, and have to manually change it for +# each different build. + +# SOURCE_DIR=c:\src\xemacs\working + +# BUILD_DIR=c:\src\xemacs\msbuilds\working + # Set this to specify the location of makeinfo. (If not set, XEmacs will # attempt to use its built-in, much slower texinfo support when building # info files.) If you are building XEmacs yourself, you probably have
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nt/make-build-dir Sat Mar 01 07:25:56 2003 +0000 @@ -0,0 +1,85 @@ +: #-*- Perl -*- + +# Create skeleton build tree +# +# Copyright (C) 2003 Ben Wing. +# +# This file is part of XEmacs. +# +# XEmacs is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any +# later version. +# +# XEmacs is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# Author: Ben Wing <ben@xemacs.org> +# +# Synched up with: Not in FSF. + +eval 'exec perl -w -S $0 ${1+"$@"}' + if 0; + +use File::Copy; +use File::Basename; +use Cwd; + +die "Creates a skeleton build tree for use with SOURCE_DIR in config.inc. + +Usage: $0 PATH +" if ($#ARGV); + +my $path = $ARGV[0]; +# Sometimes perl sucks, too. To get the equivalent of expand-file-name +# in a reliable way, you have to do really weird shit, it seems. +my $cwd = cwd (); +$0 =~ s|\\|/|g; +chdir (dirname ($0)); +my $srcroot = dirname (cwd ()); + +# Convert the path to MS Windows format if we're running Cygwin Perl. +chomp ($srcroot = `cygpath -w $srcroot`) if ($^O eq "cygwin"); +$srcroot =~ s|/|\\|g; + +chdir ($cwd); + +print "Creating skeleton build tree in $path\n"; +mkdir $path if ! -e $path; +mkdir "$path/nt" if ! -e "$path/nt"; +copy("$srcroot/nt/xemacs.mak", "$path/nt/xemacs.mak") if ! -e "$path/nt/xemacs.mak"; + +&HackFile ("config.inc.samp"); +&HackFile ("config.inc") if -e "$srcroot/nt/config.inc"; + +sub HackFile +{ + my $file = $_[0]; + if (! -e "$path/nt/$file") + { + open IN, "<$srcroot/nt/$file"; + open OUT, ">$path/nt/$file"; + + while (<IN>) + { + # Must hack away CRLF junk. Perl sucks again. Wouldn't it be + # nice if perl handled this right?? Really can't be that hard!!! + s/\r\n/\n/g; + + # hack the SOURCE_DIR line to point back to the source. + s!^# SOURCE_DIR=.*!SOURCE_DIR=$srcroot!; + + print OUT; + } + + close IN; + close OUT; + } +}
--- a/nt/make-nt-depend Fri Feb 28 22:52:30 2003 +0000 +++ b/nt/make-nt-depend Sat Mar 01 07:25:56 2003 +0000 @@ -65,8 +65,9 @@ # add obj path to object filenames # rewrite .o to .obj - # add dependency on config.inc to all objects (this might be too broad) - s/^(.+)\.o:(.+)/$obj\\$1.obj:$2 $config\\config.inc/; + s/^(.+)\.o:(.+)/$obj\\$1.obj:$2/; + # add dependency on config.inc wherever config.h is. + s/\\config.h/\\config.h $config\\config.inc/; print; }
--- a/nt/xemacs.mak Fri Feb 28 22:52:30 2003 +0000 +++ b/nt/xemacs.mak Sat Mar 01 07:25:56 2003 +0000 @@ -35,20 +35,11 @@ !error Please run nmake from the directory of this makefile (xemacs\nt). !endif -XEMACS=$(MAKEDIR)\.. -LISP=$(XEMACS)\lisp -LIB_SRC=$(XEMACS)\lib-src -MODULES=$(XEMACS)\modules -NT=$(MAKEDIR) -OUTDIR=$(NT)\obj -SRC=$(XEMACS)\src -LWLIB_SRCDIR=$(XEMACS)\lwlib -MAKEDIRSTRING=$(MAKEDIR:\=\\) -XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=) +MAKEROOT=$(MAKEDIR:\nt=) +########################### Common commands. -# Common operations - +# Put these before including config.inc so they can be overridden there. # Note that some versions of some commands are deficient. # Define the 'del' command to use @@ -64,72 +55,57 @@ COPY=xcopy /q /r COPYDIR=xcopy /q /r /e -# Program name and version - -!include "$(XEMACS)\version.sh" +########################### Includes, and source and build tree determination. !include "config.inc" +!if defined(BUILD_DIR) +SEPARATE_BUILD=1 +SRCROOT=$(MAKEROOT) +BLDROOT=$(BUILD_DIR) +!else +!if defined(SOURCE_DIR) +SEPARATE_BUILD=1 +SRCROOT=$(SOURCE_DIR) +BLDROOT=$(MAKEROOT) +!else +SEPARATE_BUILD=0 +SRCROOT=$(MAKEROOT) +BLDROOT=$(MAKEROOT) +!endif +!endif + +# Program name and version +!include "$(SRCROOT)\version.sh" + +########################### Basic vars referring to directories, both in +########################### the source and build trees. + +LISP=$(SRCROOT)\lisp +LIB_SRC=$(SRCROOT)\lib-src +NT=$(SRCROOT)\nt +SRC=$(SRCROOT)\src +ETC=$(SRCROOT)\etc + +BLDLIB_SRC=$(BLDROOT)\lib-src +BLDNT=$(BLDROOT)\nt +OUTDIR=$(BLDNT)\obj +BLDSRC=$(BLDROOT)\src + +# This appears in the dependency file +LWLIB_SRCDIR=$(SRCROOT)\lwlib + +########################### Process the config.inc options. + !if !defined(INFODOCK) INFODOCK=0 !endif - -!if $(INFODOCK) -INFODOCK_VERSION_STRING=$(infodock_major_version).$(infodock_minor_version).$(infodock_build_version) -PROGRAM_DEFINES=-DINFODOCK \ - -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ - -DPATH_PROGNAME=\"infodock\" \ - -DEMACS_PROGNAME=\"infodock\" \ - -DEMACS_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ - -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \ - -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \ - -DINFODOCK_BUILD_VERSION=$(infodock_build_version) -!else -XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version) -!if "$(emacs_beta_version)" != "" -!if "$(emacs_is_beta)" != "" -XEMACS_VERSION_STRING=$(XEMACS_VERSION_STRING)-b$(emacs_beta_version) -!else -XEMACS_VERSION_STRING=$(XEMACS_VERSION_STRING).$(emacs_beta_version) -!endif -!endif -PROGRAM_DEFINES= \ - -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \ - -DPATH_PROGNAME=\"xemacs\" \ - -DEMACS_VERSION=\"$(XEMACS_VERSION_STRING)\" \ - -DEMACS_PROGNAME=\"xemacs\" -!endif - -# -# Command line options defaults -# -!if !defined(INSTALL_DIR) -! if $(INFODOCK) -INSTALL_DIR=c:\Program Files\Infodock\Infodock-$(INFODOCK_VERSION_STRING) -! else -INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING) -! endif -!endif !if !defined(MULE) MULE=0 !endif -!if !defined(PACKAGE_PATH) -! if !defined(PACKAGE_PREFIX) -PACKAGE_PREFIX=c:\Program Files\XEmacs -! endif -! if $(MULE) -PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\mule-packages;$(PACKAGE_PREFIX)\xemacs-packages -! else -PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages -! endif -!endif -PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" !if !defined(HAVE_MS_WINDOWS) HAVE_MS_WINDOWS=1 !endif -!if !defined(HAVE_X_WINDOWS) -HAVE_X_WINDOWS=0 -!endif !if !defined(HAVE_XPM) HAVE_XPM=0 !endif @@ -237,30 +213,8 @@ USE_CRTDLL=$(USE_PORTABLE_DUMPER) !endif -# -# System configuration -# -!if !defined(OS) -OS=Windows_95/98 -EMACS_CONFIGURATION=i586-pc-win32 -!else if "$(PROCESSOR_ARCHITECTURE)" == "x86" -EMACS_CONFIGURATION=i586-pc-win32 -!else if "$(PROCESSOR_ARCHITECTURE)" == "MIPS" -EMACS_CONFIGURATION=mips-pc-win32 -!else if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA" -EMACS_CONFIGURATION=alpha-pc-win32 -!else if "$(PROCESSOR_ARCHITECTURE)" == "PPC" -EMACS_CONFIGURATION=ppc-pc-win32 -!else -! error Unknown processor architecture type $(PROCESSOR_ARCHITECTURE) -!endif -STACK_TRACE_EYE_CATCHER=$(XEMACS_VERSION_STRING:.=_) -STACK_TRACE_EYE_CATCHER=xemacs_$(STACK_TRACE_EYE_CATCHER:-=_)_$(EMACS_CONFIGURATION:-=_) -PROGRAM_DEFINES=$(PROGRAM_DEFINES) -DSTACK_TRACE_EYE_CATCHER=$(STACK_TRACE_EYE_CATCHER) +########################### Check for incompatible options. -# -# Conf error checks -# CONFIG_ERROR=0 !if $(INFODOCK) && !exist("..\..\Infodock.rules") !message Cannot build InfoDock without InfoDock sources @@ -279,16 +233,8 @@ !message [[[Developer note: If you want to fix it, read Q112297 first]]] #### CONFIG_ERROR=1 !endif -!if !$(HAVE_MS_WINDOWS) && !$(HAVE_X_WINDOWS) -!message Please specify at least one HAVE_MS_WINDOWS=1 and/or HAVE_X_WINDOWS=1 -CONFIG_ERROR=1 -!endif -!if $(HAVE_X_WINDOWS) && !defined(X11_DIR) -!message Please specify root directory for your X11 installation: X11_DIR=path -CONFIG_ERROR=1 -!endif -!if $(HAVE_X_WINDOWS) && defined(X11_DIR) && !exist("$(X11_DIR)\LIB\X11.LIB") -!message Specified X11 directory does not contain "$(X11_DIR)\LIB\X11.LIB" +!if !$(HAVE_MS_WINDOWS) && !$(HAVE_GTK) +!message Please specify at least one HAVE_MS_WINDOWS=1 and/or HAVE_GTK=1 CONFIG_ERROR=1 !endif !if $(HAVE_MS_WINDOWS) && $(HAVE_GTK) && !defined(GTK_DIR) @@ -351,20 +297,216 @@ !error Configuration error(s) found !endif -# -# Whether to use dependency information generated by make-src-depend -# -!if $(DEPEND) && exist("$(SRC)\depend") -! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"] +########################### Set version strings. + +!if $(INFODOCK) +INFODOCK_VERSION_STRING=$(infodock_major_version).$(infodock_minor_version).$(infodock_build_version) +PROGRAM_DEFINES=-DINFODOCK \ + -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ + -DPATH_PROGNAME=\"infodock\" \ + -DEMACS_PROGNAME=\"infodock\" \ + -DEMACS_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ + -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \ + -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \ + -DINFODOCK_BUILD_VERSION=$(infodock_build_version) +!else +XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version) +!if "$(emacs_beta_version)" != "" +!if "$(emacs_is_beta)" != "" +XEMACS_VERSION_STRING=$(XEMACS_VERSION_STRING)-b$(emacs_beta_version) +!else +XEMACS_VERSION_STRING=$(XEMACS_VERSION_STRING).$(emacs_beta_version) +!endif +!endif +PROGRAM_DEFINES= \ + -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \ + -DPATH_PROGNAME=\"xemacs\" \ + -DEMACS_VERSION=\"$(XEMACS_VERSION_STRING)\" \ + -DEMACS_PROGNAME=\"xemacs\" +!endif + +########################### Set up installation and package directories. + +!if !defined(INSTALL_DIR) +! if $(INFODOCK) +INSTALL_DIR=c:\Program Files\Infodock\Infodock-$(INFODOCK_VERSION_STRING) +! else +INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING) ! endif -# This perl script used to be inline but that caused too many quoting problems -! if [perl .\make-nt-depend -s=$(SRC) -c=$(NT) -o=$(OUTDIR) < $(SRC)\depend > $(OUTDIR)\depend.tmp] +!endif +!if !defined(PACKAGE_PATH) +! if !defined(PACKAGE_PREFIX) +PACKAGE_PREFIX=c:\Program Files\XEmacs ! endif -! include "$(OUTDIR)\depend.tmp" -!else -! if [echo WARNING: Compiling without dependency information.] +! if $(MULE) +PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\mule-packages;$(PACKAGE_PREFIX)\xemacs-packages +! else +PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages ! endif !endif +PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" + +!if $(INFODOCK) +PATH_PREFIX=../.. +!else +PATH_PREFIX=.. +!endif + +PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" + +!if $(SEPARATE_BUILD) +PATH_DEFINES=-DPATH_LOADSEARCH=\"$(LISP:\=\\)\" -DPATH_DATA=\"$(ETC:\=\\)\" +!endif + +########################### Determine system configuration. + +!if !defined(OS) +OS=Windows_95/98 +EMACS_CONFIGURATION=i586-pc-win32 +!else if "$(PROCESSOR_ARCHITECTURE)" == "x86" +EMACS_CONFIGURATION=i586-pc-win32 +!else if "$(PROCESSOR_ARCHITECTURE)" == "MIPS" +EMACS_CONFIGURATION=mips-pc-win32 +!else if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA" +EMACS_CONFIGURATION=alpha-pc-win32 +!else if "$(PROCESSOR_ARCHITECTURE)" == "PPC" +EMACS_CONFIGURATION=ppc-pc-win32 +!else +! error Unknown processor architecture type $(PROCESSOR_ARCHITECTURE) +!endif +STACK_TRACE_EYE_CATCHER=$(XEMACS_VERSION_STRING:.=_) +STACK_TRACE_EYE_CATCHER=xemacs_$(STACK_TRACE_EYE_CATCHER:-=_)_$(EMACS_CONFIGURATION:-=_) +PROGRAM_DEFINES=$(PROGRAM_DEFINES) -DSTACK_TRACE_EYE_CATCHER=$(STACK_TRACE_EYE_CATCHER) + +########################### Determine includes/defines/object file for +########################### various options. + +!if $(HAVE_MS_WINDOWS) +MSW_DEFINES=-DHAVE_MS_WINDOWS +MSW_INCLUDES= +MSW_LIBS=comctl32.lib + +!if $(HAVE_XPM) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW +MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib" +MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib" +!endif +!if $(HAVE_GIF) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF +MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj +!endif +!if $(HAVE_PNG) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG +MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)" +MSW_LIBS=$(MSW_LIBS) "$(PNG_DIR)\libpng.lib" "$(ZLIB_DIR)\zlib.lib" +!endif +!if $(HAVE_TIFF) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TIFF +MSW_INCLUDES=$(MSW_INCLUDES) -I"$(TIFF_DIR)\libtiff" +MSW_LIBS=$(MSW_LIBS) "$(TIFF_DIR)\libtiff\libtiff.lib" +!endif +!if $(HAVE_JPEG) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_JPEG +MSW_INCLUDES=$(MSW_INCLUDES) -I"$(JPEG_DIR)" +MSW_LIBS=$(MSW_LIBS) "$(JPEG_DIR)\libjpeg.lib" +!endif +!if $(HAVE_XFACE) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XFACE +MSW_INCLUDES=$(MSW_INCLUDES) -I"$(COMPFACE_DIR)" +MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib" +!endif +!if $(HAVE_ZLIB) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_ZLIB +MSW_INCLUDES=$(MSW_INCLUDES) -I"$(ZLIB_DIR)" +MSW_LIBS=$(MSW_LIBS) "$(ZLIB_DIR)\zlib.lib" +!endif +!if $(HAVE_MENUBARS) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MENUBARS +MSW_MENUBAR_OBJ=$(OUTDIR)\menubar.obj $(OUTDIR)\menubar-msw.obj +!endif +!if $(HAVE_SCROLLBARS) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_SCROLLBARS +MSW_SCROLLBAR_OBJ=$(OUTDIR)\scrollbar.obj $(OUTDIR)\scrollbar-msw.obj +!endif +!if $(HAVE_TOOLBARS) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS +MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj +!endif +!if $(HAVE_WIDGETS) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS +!endif +!if $(HAVE_DIALOGS) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS +MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj +!endif +!if $(HAVE_NATIVE_SOUND) +MSW_DEFINES=$(MSW_DEFINES) -DHAVE_NATIVE_SOUND +!endif + +TEMACS_MSW_OBJS=\ + $(OUTDIR)\console-msw.obj \ + $(OUTDIR)\device-msw.obj \ + $(OUTDIR)\event-msw.obj \ + $(OUTDIR)\frame-msw.obj \ + $(OUTDIR)\glyphs-msw.obj \ + $(OUTDIR)\gui-msw.obj \ + $(OUTDIR)\objects-msw.obj \ + $(OUTDIR)\redisplay-msw.obj \ + $(OUTDIR)\select-msw.obj \ + $(OUTDIR)\dired-msw.obj \ + $(MSW_MENUBAR_OBJ) \ + $(MSW_SCROLLBAR_OBJ) \ + $(MSW_TOOLBAR_OBJ) \ + $(MSW_DIALOG_OBJ) \ + $(MSW_GIF_OBJ) + +# end !if $(HAVE_MS_WINDOWS) +!endif + +!if $(MULE) +MULE_DEFINES=-DMULE +TEMACS_MULE_OBJS=\ + $(OUTDIR)\mule-ccl.obj \ + $(OUTDIR)\mule-charset.obj \ + $(OUTDIR)\mule-coding.obj +!endif + +!if $(DEBUG_XEMACS) +TEMACS_DEBUG_OBJS=$(OUTDIR)\debug.obj $(OUTDIR)\tests.obj +!endif + +!if $(QUICK_BUILD) +QUICK_DEFINES=-DQUICK_BUILD +!endif + +!if $(ERROR_CHECK_ALL) +ERROR_CHECK_DEFINES=-DERROR_CHECK_ALL +!endif + +!if $(USE_UNION_TYPE) +UNION_DEFINES=-DUSE_UNION_TYPE +!endif + +!if $(USE_PORTABLE_DUMPER) +DUMPER_DEFINES=-DPDUMP +TEMACS_DUMP_OBJS=$(OUTDIR)\dumper.obj +!else +TEMACS_DUMP_OBJS=$(OUTDIR)\unexnt.obj +!endif + +!if $(USE_KKCC) +KKCC_DEFINES=-DUSE_KKCC +!endif + +!if $(USE_SYSTEM_MALLOC) +MALLOC_DEFINES=-DSYSTEM_MALLOC +!else +MALLOC_DEFINES=-DGNU_MALLOC +TEMACS_ALLOC_OBJS=$(OUTDIR)\free-hook.obj $(OUTDIR)\gmalloc.obj \ + $(OUTDIR)\ntheap.obj $(OUTDIR)\vm-limit.obj +!endif + +########################### Process options related to compilation. # # Compiler command echo control. Define VERBOSECC=1 to get verbose compilation. @@ -449,6 +591,16 @@ CPLUSPLUS_COMPILE_FLAGS= !endif +########################### Determine generic includes/defines/flags. + +INCLUDES=$(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) + +DEFINES=$(MSW_DEFINES) $(MULE_DEFINES) $(UNION_DEFINES) \ + $(DUMPER_DEFINES) $(KKCC_DEFINES) $(MALLOC_DEFINES) \ + $(QUICK_DEFINES) $(ERROR_CHECK_DEFINES) $(DEBUG_DEFINES) \ + -DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs \ + -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) + CFLAGS_NO_OPT=-nologo -W3 -DSTRICT $(DEBUG_FLAGS_COMPILE) CFLAGS_NO_LIB=$(CFLAGS_NO_OPT) $(OPTFLAGS) @@ -457,293 +609,7 @@ CFLAGS_CDECL_NO_LIB=$(CFLAGS_NO_OPT) $(OPTFLAGS_CDECL) CFLAGS_CDECL=$(CFLAGS_CDECL_NO_LIB) $(C_LIBFLAG) -!if $(HAVE_X_WINDOWS) -X_DEFINES=-DHAVE_X_WINDOWS -X_INCLUDES=-I$(X11_DIR)\include -X_LIBS=-libpath:$(X11_DIR)\lib Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib -!endif - -!if $(HAVE_MS_WINDOWS) -MSW_DEFINES=-DHAVE_MS_WINDOWS -MSW_INCLUDES= -MSW_LIBS=comctl32.lib - -!if $(HAVE_XPM) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XPM -DFOR_MSW -MSW_INCLUDES=$(MSW_INCLUDES) -I"$(XPM_DIR)" -I"$(XPM_DIR)\lib" -MSW_LIBS=$(MSW_LIBS) "$(XPM_DIR)\lib\Xpm.lib" -!endif -!if $(HAVE_GIF) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_GIF -MSW_GIF_OBJ=$(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj -!endif -!if $(HAVE_PNG) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_PNG -MSW_INCLUDES=$(MSW_INCLUDES) -I"$(PNG_DIR)" -I"$(ZLIB_DIR)" -MSW_LIBS=$(MSW_LIBS) "$(PNG_DIR)\libpng.lib" "$(ZLIB_DIR)\zlib.lib" -!endif -!if $(HAVE_TIFF) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TIFF -MSW_INCLUDES=$(MSW_INCLUDES) -I"$(TIFF_DIR)\libtiff" -MSW_LIBS=$(MSW_LIBS) "$(TIFF_DIR)\libtiff\libtiff.lib" -!endif -!if $(HAVE_JPEG) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_JPEG -MSW_INCLUDES=$(MSW_INCLUDES) -I"$(JPEG_DIR)" -MSW_LIBS=$(MSW_LIBS) "$(JPEG_DIR)\libjpeg.lib" -!endif -!if $(HAVE_XFACE) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_XFACE -MSW_INCLUDES=$(MSW_INCLUDES) -I"$(COMPFACE_DIR)" -MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib" -!endif -!if $(HAVE_ZLIB) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_ZLIB -MSW_INCLUDES=$(MSW_INCLUDES) -I"$(ZLIB_DIR)" -MSW_LIBS=$(MSW_LIBS) "$(ZLIB_DIR)\zlib.lib" -!endif -!if $(HAVE_MENUBARS) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_MENUBARS -MSW_MENUBAR_OBJ=$(OUTDIR)\menubar.obj $(OUTDIR)\menubar-msw.obj -!endif -!if $(HAVE_SCROLLBARS) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_SCROLLBARS -MSW_SCROLLBAR_OBJ=$(OUTDIR)\scrollbar.obj $(OUTDIR)\scrollbar-msw.obj -!endif -!if $(HAVE_TOOLBARS) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS -MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj -!endif -!if $(HAVE_WIDGETS) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS -!endif -!if $(HAVE_DIALOGS) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS -MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj -!endif -!if $(HAVE_NATIVE_SOUND) -MSW_DEFINES=$(MSW_DEFINES) -DHAVE_NATIVE_SOUND -!endif -!endif - -!if $(MULE) -MULE_DEFINES=-DMULE -!endif - -!if $(QUICK_BUILD) -QUICK_DEFINES=-DQUICK_BUILD -!endif - -!if $(ERROR_CHECK_ALL) -ERROR_CHECK_DEFINES=-DERROR_CHECK_ALL -!endif - -!if $(USE_UNION_TYPE) -UNION_DEFINES=-DUSE_UNION_TYPE -!endif - -!if $(USE_PORTABLE_DUMPER) -DUMPER_DEFINES=-DPDUMP -!endif - -!if $(USE_KKCC) -KKCC_DEFINES=-DUSE_KKCC -!endif - -!if $(USE_SYSTEM_MALLOC) -MALLOC_DEFINES=-DSYSTEM_MALLOC -!else -MALLOC_DEFINES=-DGNU_MALLOC -!endif - -# Hard-coded paths - -!if $(INFODOCK) -PATH_PREFIX=../.. -!else -PATH_PREFIX=.. -!endif - -PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" - -# Generic variables - -INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(LWLIB_SRCDIR) - -DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) $(UNION_DEFINES) \ - $(DUMPER_DEFINES) $(KKCC_DEFINES) $(MALLOC_DEFINES) \ - $(QUICK_DEFINES) $(ERROR_CHECK_DEFINES) \ - -DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs \ - -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) - -#------------------------------------------------------------------------------ - -$(OUTDIR)\nul: - -@mkdir $(OUTDIR) - -XEMACS_INCLUDES=\ - $(SRC)\config.h \ - $(SRC)\Emacs.ad.h \ - $(SRC)\paths.h - -# #### Copying is cheap, we should just force these -$(SRC)\config.h: $(SRC)\config.h.in -# #### ms must have hired monkeys to design their shell commands. if -# #### you use xcopy to copy a file from one name to another, it -# #### PROMPTS you to see if you meant the second as a directory! and -# #### no switch to mean "no of course, you idiots, it's a file!" - @copy $(SRC)\config.h.in $(SRC)\config.h - -$(SRC)\Emacs.ad.h: Emacs.ad.h - set COPYCMD=/y - @$(COPY) Emacs.ad.h $(SRC) - -$(SRC)\paths.h: paths.h - set COPYCMD=/y - @$(COPY) paths.h $(SRC) - -#------------------------------------------------------------------------------ - -# lib-src programs - -LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32_NATIVE - -# -# Creating config.values to be used by config.el -# -CONFIG_VALUES = $(LIB_SRC)\config.values -!if [echo Creating $(CONFIG_VALUES) && echo ;;; Do not edit this file!>$(CONFIG_VALUES)] -!endif -# MAKEDIR has to be made into a string. -#!if [echo blddir>>$(CONFIG_VALUES) && echo $(ESC)"$(MAKEDIR:\=\\)\\..$(ESC)">>$(CONFIG_VALUES)] -!if [echo blddir>>$(CONFIG_VALUES) && echo "$(MAKEDIR:\=\\)\\..">>$(CONFIG_VALUES)] -!endif -!if [echo CC>>$(CONFIG_VALUES) && echo "$(CC:\=\\)">>$(CONFIG_VALUES)] -!endif -!if [echo CFLAGS>>$(CONFIG_VALUES) && echo "$(CFLAGS:\=\\)">>$(CONFIG_VALUES)] -!endif -!if [echo CPP>>$(CONFIG_VALUES) && echo "$(CPP:\=\\)">>$(CONFIG_VALUES)] -!endif -!if [echo CPPFLAGS>>$(CONFIG_VALUES) && echo "$(CPPFLAGS:\=\\)">>$(CONFIG_VALUES)] -!endif -!if [echo LISPDIR>>$(CONFIG_VALUES) && echo "$(MAKEDIR:\=\\)\\$(LISP:\=\\)">>$(CONFIG_VALUES)] -!endif -# PATH_PACKAGEPATH is already a quoted string. -!if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] -!endif - - -LINK_DEPENDENCY_ARGS = -Fe$@ -Fd$* $** -link $(DEBUG_FLAGS_LINK) -LINK_STANDARD_LIBRARY_ARGS = setargv.obj user32.lib wsock32.lib - -# Inferred rule -{$(LIB_SRC)}.c{$(LIB_SRC)}.exe : - cd $(LIB_SRC) - $(CCV) -I$(LIB_SRC) -I$(SRC) $(LIB_SRC_DEFINES) $(CFLAGS) $(LINK_DEPENDENCY_ARGS) $(LINK_STANDARD_LIBRARY_ARGS) - cd $(NT) - -# Individual dependencies -ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(SRC)/regex.c -$(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) - cd $(LIB_SRC) - $(CCV) -I$(LIB_SRC) -I$(SRC) $(LIB_SRC_DEFINES) $(CFLAGS) $(LINK_DEPENDENCY_ARGS) -stack:0x800000 $(LINK_STANDARD_LIBRARY_ARGS) - cd $(NT) - -$(LIB_SRC)/movemail.exe : $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS) - -# Minitar uses zlib so just use cdecl to simplify things -$(LIB_SRC)/minitar.exe : $(NT)/minitar.c - cd $(LIB_SRC) - $(CCV) -I"$(ZLIB_DIR)" $(LIB_SRC_DEFINES) $(CFLAGS_CDECL_NO_LIB) $(LINK_DEPENDENCY_ARGS) "$(ZLIB_DIR)\zlib.lib" - cd $(NT) - -LIB_SRC_TOOLS = \ - $(LIB_SRC)/etags.exe \ - $(LIB_SRC)/hexl.exe \ - $(LIB_SRC)/i.exe \ - $(LIB_SRC)/winclient.exe \ - $(LIB_SRC)/make-docfile.exe \ - $(LIB_SRC)/mmencode.exe \ - $(LIB_SRC)/movemail.exe \ - $(LIB_SRC)/sorted-doc.exe \ - $(LIB_SRC)/wakeup.exe -!if $(USE_MINITAR) -LIB_SRC_TOOLS = \ - $(LIB_SRC_TOOLS) \ - $(LIB_SRC)/minitar.exe -!endif -!if $(USE_PORTABLE_DUMPER) -LIB_SRC_TOOLS = \ - $(XEMACS_INCLUDES) \ - $(LIB_SRC)/make-dump-id.exe \ - $(LIB_SRC_TOOLS) -!endif - -#------------------------------------------------------------------------------ - -# LASTFILE Library - -!if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) - -LASTFILE=$(OUTDIR)\lastfile.lib -LASTFILE_SRC=$(SRC) -LASTFILE_FLAGS=$(CFLAGS) $(CPLUSPLUS_COMPILE_FLAGS) $(INCLUDES) -Fo$@ -Fd$* -c -LASTFILE_OBJS= \ - $(OUTDIR)\lastfile.obj - -$(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS) - link.exe -lib -nologo -out:$@ $(LASTFILE_OBJS) - -$(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c - $(CCV) $(LASTFILE_FLAGS) $(LASTFILE_SRC)\$(@B).c - -!endif - -#------------------------------------------------------------------------------ - -!if $(HAVE_X_WINDOWS) - -# LWLIB Library - -LWLIB=$(OUTDIR)\lwlib.lib -LWLIB_FLAGS=$(CFLAGS) $(INCLUDES) $(DEFINES) \ - -DNEED_ATHENA -DNEED_LUCID \ - -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \ - -Fo$@ -c -LWLIB_OBJS= \ - $(OUTDIR)\lwlib-utils.obj \ - $(OUTDIR)\lwlib-Xaw.obj \ - $(OUTDIR)\lwlib-Xlw.obj \ - $(OUTDIR)\lwlib.obj \ - $(OUTDIR)\xlwmenu.obj \ - $(OUTDIR)\xlwscrollbar.obj - -$(LWLIB): $(LWLIB_OBJS) - link.exe -lib -nologo -out:$@ $(LWLIB_OBJS) - -$(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRCDIR)\lwlib-utils.c - $(CCV) $(LWLIB_FLAGS) $(LWLIB_SRCDIR)\$(@B).c - -$(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRCDIR)\lwlib-Xaw.c - $(CCV) $(LWLIB_FLAGS) $(LWLIB_SRCDIR)\$(@B).c - -$(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRCDIR)\lwlib-Xlw.c - $(CCV) $(LWLIB_FLAGS) $(LWLIB_SRCDIR)\$(@B).c - -$(OUTDIR)\lwlib.obj: $(LWLIB_SRCDIR)\lwlib.c - $(CCV) $(LWLIB_FLAGS) $(LWLIB_SRCDIR)\$(@B).c - -$(OUTDIR)\xlwmenu.obj: $(LWLIB_SRCDIR)\xlwmenu.c - $(CCV) $(LWLIB_FLAGS) $(LWLIB_SRCDIR)\$(@B).c - -$(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRCDIR)\xlwscrollbar.c - $(CCV) $(LWLIB_FLAGS) $(LWLIB_SRCDIR)\$(@B).c - -!endif - -#------------------------------------------------------------------------------ - -# TEMACS Executable +########################### Determine flags for XEmacs object files. # This may not exist !if "$(emacs_beta_version)" != "" @@ -754,118 +620,21 @@ !endif !endif -!if !$(USE_PORTABLE_DUMPER) -TEMACS_ENTRYPOINT=-entry:_start -!else -TEMACS_ENTRYPOINT=-entry:mainCRTStartup -!endif - -TEMACS_DIR=$(SRC) -TEMACS=$(TEMACS_DIR)\temacs.exe -TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc -TEMACS_SRC=$(SRC) -TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ - oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \ - shell32.lib wsock32.lib netapi32.lib winmm.lib winspool.lib ole32.lib \ - mpr.lib uuid.lib imm32.lib $(LIBC_LIB) -TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS_LINK) -base:0x1000000\ - -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows\ - -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ - -heap:0x00100000 -nodefaultlib $(PROFILE_FLAGS) setargv.obj TEMACS_CPP_FLAGS_NO_CFLAGS=-c $(CPLUSPLUS_COMPILE_FLAGS) \ - $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ + $(INCLUDES) $(DEFINES) \ -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ - $(EMACS_BETA_VERSION) \ - $(EMACS_PATCH_LEVEL) \ + $(EMACS_BETA_VERSION) $(EMACS_PATCH_LEVEL) \ -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \ -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" TEMACS_CPP_FLAGS=$(CFLAGS) $(TEMACS_CPP_FLAGS_NO_CFLAGS) TEMACS_CPP_CDECL_FLAGS=$(CFLAGS_CDECL) $(TEMACS_CPP_FLAGS_NO_CFLAGS) -!if $(HAVE_X_WINDOWS) -TEMACS_X_OBJS=\ - $(OUTDIR)\balloon-x.obj \ - $(OUTDIR)\balloon_help.obj \ - $(OUTDIR)\console-x.obj \ - $(OUTDIR)\device-x.obj \ - $(OUTDIR)\dialog-x.obj \ - $(OUTDIR)\EmacsFrame.obj \ - $(OUTDIR)\EmacsManager.obj \ - $(OUTDIR)\EmacsShell.obj \ - $(OUTDIR)\TopLevelEmacsShell.obj\ - $(OUTDIR)\TransientEmacsShell.obj\ - $(OUTDIR)\event-Xt.obj \ - $(OUTDIR)\frame-x.obj \ - $(OUTDIR)\glyphs-x.obj \ - $(OUTDIR)\gui-x.obj \ - $(OUTDIR)\menubar-x.obj \ - $(OUTDIR)\objects-x.obj \ - $(OUTDIR)\redisplay-x.obj \ - $(OUTDIR)\scrollbar-x.obj \ - $(OUTDIR)\xgccache.obj \ - $(OUTDIR)\xmu.obj \ - $(OUTDIR)\select-x.obj -!endif - -!if $(HAVE_MS_WINDOWS) -TEMACS_MSW_OBJS=\ - $(OUTDIR)\console-msw.obj \ - $(OUTDIR)\device-msw.obj \ - $(OUTDIR)\event-msw.obj \ - $(OUTDIR)\frame-msw.obj \ - $(OUTDIR)\glyphs-msw.obj \ - $(OUTDIR)\gui-msw.obj \ - $(OUTDIR)\objects-msw.obj \ - $(OUTDIR)\redisplay-msw.obj \ - $(OUTDIR)\select-msw.obj \ - $(OUTDIR)\dired-msw.obj \ - $(MSW_MENUBAR_OBJ) \ - $(MSW_SCROLLBAR_OBJ) \ - $(MSW_TOOLBAR_OBJ) \ - $(MSW_DIALOG_OBJ) \ - $(MSW_GIF_OBJ) -!endif - -!if $(MULE) -TEMACS_MULE_OBJS=\ - $(OUTDIR)\mule-ccl.obj \ - $(OUTDIR)\mule-charset.obj \ - $(OUTDIR)\mule-coding.obj - -! if $(HAVE_X_WINDOWS) -TEMACS_MULE_OBJS=\ - $(TEMACS_MULE_OBJS) $(OUTDIR)\input-method-xlib.obj -! endif -!endif - -!if $(DEBUG_XEMACS) -TEMACS_DEBUG_OBJS=\ - $(OUTDIR)\debug.obj \ - $(OUTDIR)\tests.obj -!endif - -!if !$(USE_SYSTEM_MALLOC) -TEMACS_ALLOC_OBJS=\ - $(OUTDIR)\free-hook.obj \ - $(OUTDIR)\gmalloc.obj \ - $(OUTDIR)\ntheap.obj \ - $(OUTDIR)\vm-limit.obj -!endif - -!if !$(USE_PORTABLE_DUMPER) -TEMACS_DUMP_OBJS=\ - $(OUTDIR)\unexnt.obj -!else -TEMACS_DUMP_OBJS=\ - $(OUTDIR)\dumper.obj -!endif +########################### Determine XEmacs object files. TEMACS_OBJS= \ - $(TEMACS_X_OBJS)\ $(TEMACS_MSW_OBJS)\ - $(TEMACS_CODING_OBJS)\ $(TEMACS_MULE_OBJS)\ $(TEMACS_DEBUG_OBJS)\ $(TEMACS_ALLOC_OBJS)\ @@ -962,154 +731,202 @@ $(OUTDIR)\window.obj \ $(OUTDIR)\win32.obj +######################################################################### +## Implicit rules ## +######################################################################### + # Rules .SUFFIXES: .SUFFIXES: .c .obj .texi .info # nmake rule with batching: -#{$(TEMACS_SRC)}.c{$(OUTDIR)}.obj: +#{$(SRC)}.c{$(OUTDIR)}.obj: # echo $< >> $(OUTDIR)\listfile.tmp -{$(TEMACS_SRC)}.c{$(OUTDIR)}.obj: +{$(SRC)}.c{$(OUTDIR)}.obj: $(CCV) $(TEMACS_CPP_FLAGS) $< -Fo$@ $(BROWSERFLAGS) +######################################################################### +## Subsidiary dependency rules ## +######################################################################### + +###################### Include auto-generated dependencies. + +# +# Whether to use dependency information generated by make-src-depend +# +!if $(DEPEND) && exist("$(SRC)\depend") +! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"] +! endif +# This perl script used to be inline but that caused too many quoting problems +! if [perl $(NT)\make-nt-depend -s=$(SRC) -c=$(NT) -o=$(OUTDIR) < $(SRC)\depend > $(OUTDIR)\depend.tmp] +! endif +! include "$(OUTDIR)\depend.tmp" +!else +! if [echo WARNING: Compiling without dependency information.] +! endif +!endif + +###################### Build the output directory structure if not same as +###################### source. + +!if $(SEPARATE_BUILD) +# #### `if not exist' does not like the quotes around file names. +# But what if one of them has spaces? Fucking Microsoft! +! if [if not exist $(BLDROOT)\nul mkdir "$(BLDROOT)"] +! endif +! if [if not exist $(BLDLIB_SRC)\nul mkdir "$(BLDLIB_SRC)"] +! endif +! if [if not exist $(BLDNT)\nul mkdir "$(BLDNT)"] +! endif +! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"] +! endif +! if [if not exist $(BLDSRC)\nul mkdir "$(BLDSRC)"] +! endif +# No point. +# ! if [if not exist "$(BLDROOT)\nul" mkdir "$(BLDROOT)"] +# ! endif +!endif + +###################### Random .obj dependencies + # An explicit rule looks like this ($< works only in implicit rules): -# $(OUTDIR)\foo.obj: $(TEMACS_SRC)\foo.c -# $(CCV) $(TEMACS_CPP_FLAGS) $(TEMACS_SRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) +# $(OUTDIR)\foo.obj: $(SRC)\foo.c +# $(CCV) $(TEMACS_CPP_FLAGS) $(SRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) -$(OUTDIR)\emacs.obj: $(XEMACS)\version.sh +$(OUTDIR)\emacs.obj: $(SRCROOT)\version.sh -$(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c - $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $(TEMACS_SRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) +$(OUTDIR)\libinterface.obj: $(SRC)\libinterface.c + $(CCV) $(TEMACS_CPP_CDECL_FLAGS) $(SRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) -$(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c - $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $(TEMACS_SRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) +###################### Generated source files + +$(OUTDIR)\nul: + -@mkdir $(OUTDIR) -$(OUTDIR)\libinterface.obj: $(TEMACS_SRC)\libinterface.c - $(CCV) $(TEMACS_CPP_CDECL_FLAGS) $(TEMACS_SRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) - -#$(TEMACS_SRC)\Emacs.ad.h: $(XEMACS)\etc\Emacs.ad -# !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h" +XEMACS_INCLUDES=\ + $(SRC)\config.h \ + $(SRC)\Emacs.ad.h \ + $(SRC)\paths.h -#$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in -# !"cd $(TEMACS_SRC); cp paths.h.in paths.h" +# #### Copying is cheap, we should just force these +$(SRC)\config.h: $(SRC)\config.h.in +# #### ms must have hired monkeys to design their shell commands. if +# #### you use xcopy to copy a file from one name to another, it +# #### PROMPTS you to see if you meant the second as a directory! and +# #### no switch to mean "no of course, you idiots, it's a file!" + @copy $(SRC)\config.h.in $(SRC)\config.h -create-list-file: - @if exist $(OUTDIR)\listfile.tmp del $(OUTDIR)\listfile.tmp +#$(SRC)\Emacs.ad.h: $(SRCROOT)\etc\Emacs.ad +# !"sed -f ad2c.sed < $(SRCROOT)\etc\Emacs.ad > $(SRC)\Emacs.ad.h" -compile-list-file: - cd $(OUTDIR) - @if exist listfile.tmp $(CC) $(TEMACS_CPP_FLAGS) @listfile.tmp $(BROWSERFLAGS) +#$(SRC)\paths.h: $(SRC)\paths.h.in +# !"cd $(SRC); cp paths.h.in paths.h" + +$(SRC)\Emacs.ad.h: $(NT)\Emacs.ad.h + set COPYCMD=/y + @$(COPY) $(NT)\Emacs.ad.h $(SRC) -$(TEMACS_BROWSE): $(TEMACS_OBJS) - @dir /b/s $(OUTDIR)\*.sbr > $(OUTDIR)\bscmake.tmp - bscmake -nologo -o$(TEMACS_BROWSE) @$(OUTDIR)\bscmake.tmp - -$(DEL) $(OUTDIR)\bscmake.tmp +$(SRC)\paths.h: $(NT)\paths.h + set COPYCMD=/y + @$(COPY) $(NT)\paths.h $(SRC) -# dump-id.c file that contains the dump id + +###################### lastfile.lib -$(OUTDIR)\dump-id.obj : $(SRC)\dump-id.c - cd $(OUTDIR) - $(CCV) $(TEMACS_CPP_FLAGS) $(TEMACS_SRC)\$(@B).c $(BROWSERFLAGS) +!if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) -$(SRC)\dump-id.c : $(LIB_SRC)/make-dump-id.exe $(TEMACS_OBJS) - cd $(SRC) - $(LIB_SRC)\make-dump-id.exe - cd $(NT) +LASTFILE=$(OUTDIR)\lastfile.lib +LASTFILE_SRC=$(SRC) +LASTFILE_FLAGS=$(CFLAGS) $(CPLUSPLUS_COMPILE_FLAGS) $(INCLUDES) -Fo$@ -Fd$* -c +LASTFILE_OBJS= \ + $(OUTDIR)\lastfile.obj -!if $(USE_PORTABLE_DUMPER) -TEMACS_DUMP_ID_OBJ = $(OUTDIR)\dump-id.obj -!else -TEMACS_DUMP_ID_OBJ = +$(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS) + link.exe -lib -nologo -out:$@ $(LASTFILE_OBJS) + +$(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c + $(CCV) $(LASTFILE_FLAGS) $(LASTFILE_SRC)\$(@B).c + !endif -!if $(DEBUG_XEMACS) -$(TEMACS): $(TEMACS_OBJS) $(OUTDIR)\temacs.res $(TEMACS_BROWSE) $(TEMACS_DUMP_ID_OBJ) -!else -$(TEMACS): $(TEMACS_OBJS) $(OUTDIR)\temacs.res $(TEMACS_DUMP_ID_OBJ) +###################### lib-src programs + +LIB_SRC_DEFINES = -DHAVE_CONFIG_H -DWIN32_NATIVE + +# +# Creating config.values to be used by config.el +# +CONFIG_VALUES = $(BLDLIB_SRC)\config.values +!if [echo Creating $(CONFIG_VALUES) && echo ;;; Do not edit this file!>$(CONFIG_VALUES)] +!endif +!if [echo blddir>>$(CONFIG_VALUES) && echo "$(BLDROOT:\=\\)">>$(CONFIG_VALUES)] +!endif +!if [echo srcdir>>$(CONFIG_VALUES) && echo "$(SRCROOT:\=\\)">>$(CONFIG_VALUES)] +!endif +!if [echo CC>>$(CONFIG_VALUES) && echo "$(CC:\=\\)">>$(CONFIG_VALUES)] +!endif +!if [echo CFLAGS>>$(CONFIG_VALUES) && echo "$(CFLAGS:\=\\)">>$(CONFIG_VALUES)] +!endif +!if [echo CPP>>$(CONFIG_VALUES) && echo "$(CPP:\=\\)">>$(CONFIG_VALUES)] +!endif +!if [echo CPPFLAGS>>$(CONFIG_VALUES) && echo "$(CPPFLAGS:\=\\)">>$(CONFIG_VALUES)] +!endif +!if [echo LISPDIR>>$(CONFIG_VALUES) && echo "\\$(LISP:\=\\)">>$(CONFIG_VALUES)] +!endif +# PATH_PACKAGEPATH is already a quoted string. +!if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] +!endif + +LINK_DEPENDENCY_ARGS = -Fe$@ -Fd$* $** -link $(DEBUG_FLAGS_LINK) +LINK_STANDARD_LIBRARY_ARGS = setargv.obj user32.lib wsock32.lib + +# Inferred rule +{$(LIB_SRC)}.c{$(BLDLIB_SRC)}.exe : + $(CCV) -I$(LIB_SRC) -I$(SRC) $(LIB_SRC_DEFINES) $(CFLAGS) $(LINK_DEPENDENCY_ARGS) $(LINK_STANDARD_LIBRARY_ARGS) + +# Individual dependencies +ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(SRC)/regex.c +$(BLDLIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) + $(CCV) -I$(LIB_SRC) -I$(SRC) $(LIB_SRC_DEFINES) $(CFLAGS) $(LINK_DEPENDENCY_ARGS) -stack:0x800000 $(LINK_STANDARD_LIBRARY_ARGS) + +$(BLDLIB_SRC)/movemail.exe : $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS) + +# Minitar uses zlib so just use cdecl to simplify things +$(BLDLIB_SRC)/minitar.exe : $(NT)/minitar.c + $(CCV) -I"$(ZLIB_DIR)" $(LIB_SRC_DEFINES) $(CFLAGS_CDECL_NO_LIB) $(LINK_DEPENDENCY_ARGS) "$(ZLIB_DIR)\zlib.lib" + +LIB_SRC_TOOLS = \ + $(BLDLIB_SRC)/etags.exe \ + $(BLDLIB_SRC)/hexl.exe \ + $(BLDLIB_SRC)/i.exe \ + $(BLDLIB_SRC)/winclient.exe \ + $(BLDLIB_SRC)/make-docfile.exe \ + $(BLDLIB_SRC)/mmencode.exe \ + $(BLDLIB_SRC)/movemail.exe \ + $(BLDLIB_SRC)/sorted-doc.exe \ + $(BLDLIB_SRC)/wakeup.exe +!if $(USE_MINITAR) +LIB_SRC_TOOLS = \ + $(LIB_SRC_TOOLS) \ + $(BLDLIB_SRC)/minitar.exe !endif !if $(USE_PORTABLE_DUMPER) - cd $(NT) - link.exe @<< - $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_LIBS) $(TEMACS_DUMP_ID_OBJ) -<< -!else - link.exe @<< - $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(OUTDIR)\temacs.res $(TEMACS_LIBS) -<< +LIB_SRC_TOOLS = \ + $(XEMACS_INCLUDES) \ + $(BLDLIB_SRC)/make-dump-id.exe \ + $(LIB_SRC_TOOLS) !endif -$(OUTDIR)\temacs.res: $(NT)\xemacs.rc - cd $(NT) - rc -Fo$@ xemacs.rc - - -PROGNAME = $(TEMACS_DIR)\xemacs.exe -DO_TEMACS = "$(LIB_SRC)\i" "$(TEMACS)" -DO_XEMACS = "$(LIB_SRC)\i" "$(PROGNAME)" - -BATCH = -no-packages -batch -BATCH_PACKAGES = -vanilla -batch -TEMACS_BATCH = $(DO_TEMACS) -nd $(BATCH) -XEMACS_BATCH = $(DO_XEMACS) $(BATCH) -XEMACS_BATCH_PACKAGES = $(DO_XEMACS) $(BATCH_PACKAGES) -temacs_loadup_args = -l $(LISP)/loadup.el -dump_temacs_args = $(temacs_loadup_args) dump -run_temacs_args = $(temacs_loadup_args) run-temacs -dump_temacs = $(TEMACS_BATCH) $(dump_temacs_args) - -# Section handling automated tests starts here - -## We have automated tests!! -testdir = ../tests/automated -batch_test_emacs = $(BATCH_PACKAGES) -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir) - -# .PHONY: check check-temacs - -check: - cd $(TEMACS_DIR) - $(DO_XEMACS) $(batch_test_emacs) - -check-temacs: - cd $(TEMACS_DIR) - $(TEMACS_BATCH) $(run_temacs_args) $(batch_test_emacs) - -check-features: all - cd $(TEMACS_DIR) - $(XEMACS_BATCH) -l check-features.el - -# Section handling automated tests ends here - -# Section handling tags starts here - -tagslisp=lisp - -tags: - @echo If you don't have a copy of etags around, then do 'make lib-src' first. - @echo To make use of the tags file, put the following in your .emacs: - @echo (setq tag-table-alist - @echo '(("$(XEMACSDIRSTRING)\\" . "$(XEMACSDIRSTRING)\\"))) - cd $(XEMACS) - -$(DEL) TAGS - set PATH=lib-src;%PATH% -# we need to double ^, but only in one place, because (according to the -# nmake manual), a ^ is used to quote certain special characters such as -# backslash, but is treated literally within double quotes -- and notice -# carefully the occurrences of double quotes in the first line below! - etags -a -r "/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*\"\([^^\"]+\)\"/\2/" src\*.c src\*.h lwlib\*.c lwlib\*.h lib-src\*.c lib-src\*.h - etags -a -l none -r "/^(def\(var\|un\|alias\|const\|macro\|subst\|struct\|face\|group\|custom\|ine-\(function\|compiler-macro\|[a-z-]+alias\)\)[ ]+'?\([^ ]+\)/\3/" $(tagslisp)\*.el $(tagslisp)\mule\*.el - -# Section handling tags ends here - -# Section handling info starts here +###################### Building the info files !if !defined(MAKEINFO) MAKEINFO=$(XEMACS_BATCH_PACKAGES) -l texinfmt -f batch-texinfo-format !endif -MANDIR = $(XEMACS)\man -INFODIR = $(XEMACS)\info +MANDIR = $(SRCROOT)\man +INFODIR = $(SRCROOT)\info INFO_FILES= \ $(INFODIR)\cl.info \ $(INFODIR)\custom.info \ @@ -1262,23 +1079,19 @@ $(INFODIR)\xemacs.info: $(XEMACS_SRCS) cd $(MANDIR)\xemacs $(MAKEINFO) xemacs.texi - cd .. $(INFODIR)\lispref.info: $(LISPREF_SRCS) cd $(MANDIR)\lispref $(MAKEINFO) lispref.texi - cd .. $(INFODIR)\internals.info: $(INTERNALS_SRCS) cd $(MANDIR)\internals $(MAKEINFO) internals.texi - cd .. $(INFODIR)\new-users-guide.info: $(NEW_USERS_GUIDE_SRCS) cd $(MANDIR)\new-users-guide $(MAKEINFO) new-users-guide.texi - cd .. info: makeinfo-test $(INFO_FILES) @@ -1297,200 +1110,26 @@ :test_done <<NOKEEP -# Section handling info ends here - -#------------------------------------------------------------------------------ - -# Rebuild docfile target - -DOC=$(LIB_SRC)\DOC - -docfile :: - if exist $(DOC) $(DEL) $(DOC) -docfile :: $(DOC) - -$(DOC): $(LIB_SRC)\make-docfile.exe $(TEMACS_DIR)\NEEDTODUMP $(TEMACS_OBJS) - cd $(TEMACS_DIR) -!if $(QUICK_BUILD) - if not exist $(DOC) $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages @<< -$(**) -<< -!else - $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages @<< -$(**) -<< -!endif - -update-elc: - cd $(TEMACS_DIR) - $(TEMACS_BATCH) -l $(LISP)\update-elc.el - -## Update out-of-date .elcs, other than needed for dumping. -update-elc-2: - $(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP) - -$(LISP)/finder-inf.el: - @echo Building finder database ... - $(XEMACS_BATCH) -eval "(setq finder-compile-keywords-quiet t)" \ - -l finder -f finder-compile-keywords - @echo Building finder database ...(done) - -load-shadows: -!if !$(QUICK_BUILD) - @echo Testing for Lisp shadows ... - @$(XEMACS_BATCH) -f list-load-path-shadows -!endif - -## This file is touched by update-elc.el when redumping is necessary. -$(TEMACS_DIR)\NEEDTODUMP : - @echo >$(TEMACS_DIR)\NEEDTODUMP - -# This rule dumps xemacs and then possibly spawns sub-make if PURESPACE -# requirements have changed. - -$(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP - cd $(TEMACS_DIR) - $(TEMACS_BATCH) -l $(LISP)\loadup.el dump -!if $(USE_PORTABLE_DUMPER) - rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc -# Make the resource section read/write since almost all of it is the dump -# data which needs to be writable. This avoids having to copy it. - link.exe @<< - $(TEMACS_LFLAGS) -section:.rsrc,rw -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj -<< - -$(DEL) $(TEMACS_DIR)\xemacs.dmp -!endif -#------------------------------------------------------------------------------ - -# use this rule to build the complete system -all: installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ - $(LIB_SRC_TOOLS) $(TEMACS) update-elc $(DOC) $(PROGNAME) \ - update-elc-2 $(LISP)/finder-inf.el load-shadows info - -temacs: $(LASTFILE) $(TEMACS) +########################### Create the Installation file -# use this rule to install the system -install: all - cd $(NT) - set COPYCMD=/y - @echo Installing in $(INSTALL_DIR) ... - @echo PlaceHolder > PlaceHolder - @$(COPY) PROBLEMS "$(INSTALL_DIR)\" - @$(COPY) PlaceHolder "$(INSTALL_DIR)\lock\" - -$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" - @$(COPY) $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\" - @$(COPY) $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" - @$(COPY) $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" - @$(COPY) $(TEMACS_DIR)\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" - @$(COPYDIR) $(XEMACS)\etc "$(INSTALL_DIR)\etc\" - @$(COPYDIR) $(XEMACS)\info "$(INSTALL_DIR)\info\" - @$(COPYDIR) $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" - @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... - @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" - -$(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" - @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\mule-packages\" - -$(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" - @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" - -$(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" - -$(DEL) PlaceHolder - -mostlyclean: - -$(DEL) $(XEMACS)\Installation - -$(DEL) $(OUTDIR)\*.lib - -$(DEL) $(OUTDIR)\*.obj - -$(DEL) $(OUTDIR)\*.pdb - -$(DEL) $(OUTDIR)\*.res - -$(DEL) $(OUTDIR)\*.sbr - -$(DEL) $(TEMACS_DIR)\*.exe - -$(DEL) $(TEMACS_DIR)\*.map - -$(DEL) $(SRC)\*.bsc - -$(DEL) $(TEMACS_DIR)\*.pdb - -$(DEL) $(LIB_SRC)\*.exe - -$(DEL) $(LIB_SRC)\*.obj - -$(DEL) $(LIB_SRC)\*.pdb - -$(DEL) $(LIB_SRC)\*.res - -clean: mostlyclean versionclean - -$(DEL) $(XEMACS)\TAGS - -nicenclean: clean - -$(DEL) $(NT)\*.bak - -$(DEL) $(NT)\*.orig - -$(DEL) $(NT)\*.rej - -$(DEL) $(NT)\*.tmp - -$(DEL) $(LIB_SRC)\*.bak - -$(DEL) $(LIB_SRC)\*.orig - -$(DEL) $(LIB_SRC)\*.rej - -$(DEL) $(LIB_SRC)\*.tmp - -$(DEL) $(SRC)\*.bak - -$(DEL) $(SRC)\*.orig - -$(DEL) $(SRC)\*.rej - -$(DEL) $(SRC)\*.tmp - -$(DEL) $(LISP)\*.bak - -$(DEL) $(LISP)\*.orig - -$(DEL) $(LISP)\*.rej - -$(DEL) $(LISP)\*.tmp - -# Convenience target. -# Reproducing the configuration is just a matter of copying, and if -# we use the same directory for Cygwin builds these must go. We don't -# want to use distclean. -configclean: - -$(DEL) $(SRC)\config.h - -$(DEL) $(SRC)\paths.h - -$(DEL) $(SRC)\Emacs.ad.h - -## This is used in making a distribution. -## Do not use it on development directories! -distclean: nicenclean configclean - -$(DEL) $(LIB_SRC)\$(CONFIG_VALUES) - -$(DEL) $(INFODIR)\*.info* - -$(DEL) $(LISP)\*.elc - -$(DEL) $(LISP)\mule\*.elc - -$(DEL) $(LISP)\term\*.elc - -realclean: distclean - -versionclean: - -$(DEL) $(TEMACS_DIR)\xemacs.exe - -$(DEL) $(LIB_SRC)\DOC - -#not sure about those wildcards. DOS wildcards are stupid compared to Unix, -#and could end up deleting *everything* instead of just backup files or -#whatever. So just leave it at "realclean" -extraclean: realclean -# -$(DEL) *~ -# -$(DEL) *.*~ -# -$(DEL) #* -# -$(DEL) m\*~ -# -$(DEL) m\#* -# -$(DEL) s\*~ -# -$(DEL) s\#* - -depend: - cd $(SRC) - perl ./make-src-depend > depend.tmp - perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" - -unicode-encapsulate: - cd $(SRC) - perl ../lib-src/make-mswin-unicode.pl --c-output intl-auto-encap-win32.c --h-output intl-auto-encap-win32.h intl-encap-win32.c - -$(XEMACS)\Installation:: installation +$(BLDROOT)\Installation:: installation installation:: - @echo OS version:>$(XEMACS)\Installation - @ver >> $(XEMACS)\Installation - @type >> $(XEMACS)\Installation << + @echo OS version:>$(BLDROOT)\Installation + @ver >> $(BLDROOT)\Installation + @type >> $(BLDROOT)\Installation << !if defined(OS) OS: $(OS) !endif -XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename) $(xemacs_extra_name:"=) configured for `$(EMACS_CONFIGURATION)'. +XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename:"=) $(xemacs_extra_name:"=) configured for '$(EMACS_CONFIGURATION)'. Building XEmacs using "$(MAKE:\=\\)". Building XEmacs using make flags "$(MAKEFLAGS)". - Building XEmacs in "$(MAKEDIR:\=\\)". + Building XEmacs in source tree "$(SRCROOT:\=\\)". +!if $(SEPARATE_BUILD) + Building XEmacs into compiled tree "$(BLDROOT:\=\\)". +!endif !if defined(CCV) Using compiler "$(CC) $(CFLAGS)". !endif @@ -1505,9 +1144,6 @@ !if $(HAVE_MS_WINDOWS) Compiling in support for Microsoft Windows native GUI. !endif -!if $(HAVE_X_WINDOWS) - Compiling in support for X Windows. -!endif !if $(MULE) Compiling in international (MULE) support. !endif @@ -1606,8 +1242,315 @@ !endif <<NOKEEP @echo -------------------------------------------------------------------- - @type $(XEMACS)\Installation + @type $(BLDROOT)\Installation @echo -------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- make depend depends on it. +######################################################################### +## Primary rebuilding process ## +######################################################################### + +########################### Definitions for linking temacs.exe + +!if !$(USE_PORTABLE_DUMPER) +TEMACS_ENTRYPOINT=-entry:_start +!else +TEMACS_ENTRYPOINT=-entry:mainCRTStartup +!endif + +TEMACS_BROWSE=$(BLDSRC)\temacs.bsc +TEMACS_LIBS=$(LASTFILE) $(MSW_LIBS) \ + oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \ + shell32.lib wsock32.lib netapi32.lib winmm.lib winspool.lib ole32.lib \ + mpr.lib uuid.lib imm32.lib $(LIBC_LIB) +TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS_LINK) -base:0x1000000\ + -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows\ + -pdb:$(BLDSRC)\temacs.pdb -map:$(BLDSRC)\temacs.map \ + -heap:0x00100000 -nodefaultlib $(PROFILE_FLAGS) setargv.obj + +########################### Definitions for running temacs.exe/xemacs.exe + +RAW_EXE=$(BLDSRC)\temacs.exe +DUMP_TARGET = $(BLDSRC)\xemacs.exe +DO_TEMACS = "$(BLDLIB_SRC)\i" "$(RAW_EXE)" +DO_XEMACS = "$(BLDLIB_SRC)\i" "$(DUMP_TARGET)" + +BATCH = -no-packages -batch +BATCH_PACKAGES = -vanilla -batch +TEMACS_BATCH = $(DO_TEMACS) -nd $(BATCH) +XEMACS_BATCH = $(DO_XEMACS) $(BATCH) +XEMACS_BATCH_PACKAGES = $(DO_XEMACS) $(BATCH_PACKAGES) +temacs_loadup_args = -l $(LISP)/loadup.el +dump_temacs_args = $(temacs_loadup_args) dump +run_temacs_args = $(temacs_loadup_args) run-temacs +dump_temacs = $(TEMACS_BATCH) $(dump_temacs_args) + +########################### Build rules + +# use this rule to build the complete system +all: installation $(OUTDIR)\nul $(LASTFILE) \ + $(LIB_SRC_TOOLS) update-elc $(DUMP_TARGET) \ + update-elc-2 $(LISP)/finder-inf.el load-shadows info + +$(TEMACS_BROWSE): $(TEMACS_OBJS) + @dir /b/s $(OUTDIR)\*.sbr > $(OUTDIR)\bscmake.tmp + bscmake -nologo -o$(TEMACS_BROWSE) @$(OUTDIR)\bscmake.tmp + -$(DEL) $(OUTDIR)\bscmake.tmp + +# dump-id.c file that contains the dump id + +$(OUTDIR)\dump-id.obj : $(BLDSRC)\dump-id.c + $(CCV) $(TEMACS_CPP_FLAGS) $(BLDSRC)\$(@B).c -Fo$@ $(BROWSERFLAGS) + +$(BLDSRC)\dump-id.c : $(BLDLIB_SRC)/make-dump-id.exe $(TEMACS_OBJS) + cd $(BLDSRC) + $(BLDLIB_SRC)\make-dump-id.exe + +$(OUTDIR)\temacs.res: $(NT)\xemacs.rc + cd $(NT) + rc -Fo$@ xemacs.rc + +!if $(USE_PORTABLE_DUMPER) +TEMACS_DUMP_DEP = $(OUTDIR)\dump-id.obj +!else +TEMACS_DUMP_DEP = $(OUTDIR)\temacs.res +!endif + +$(RAW_EXE): $(TEMACS_OBJS) $(LASTFILE) $(TEMACS_DUMP_DEP) + link.exe @<< + $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_DUMP_DEP) $(TEMACS_LIBS) +<< + +!if $(DEBUG_XEMACS) +$(RAW_EXE): $(TEMACS_BROWSE) +!endif + +# Rebuild docfile target + +DOC=$(BLDLIB_SRC)\DOC + +docfile :: + if exist $(DOC) $(DEL) $(DOC) +docfile :: $(DOC) + +# We need to write the QUICK_BUILD stuff as-is (and not just have no +# dependencies for DOC) because DOC needs TEMACS_OBJS as dependencies to +# get $(**) right. The `touch' is needed because of the way nmake +# calculates dependencies; see comments in src/Makefile.in.in. +$(DOC): $(BLDLIB_SRC)\make-docfile.exe $(BLDSRC)\NEEDTODUMP $(TEMACS_OBJS) +!if $(QUICK_BUILD) + if not exist $(DOC) $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(SRCROOT)\site-packages @<< +$(**) +<< + -touch $(DOC) +!else + $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(SRCROOT)\site-packages @<< +$(**) +<< +!endif + +update-elc: $(RAW_EXE) + $(TEMACS_BATCH) -l $(LISP)\update-elc.el + +## This file is touched by update-elc.el when redumping is necessary. +$(BLDSRC)\NEEDTODUMP: + @echo >$(BLDSRC)\NEEDTODUMP + +!if $(USE_PORTABLE_DUMPER) +$(DUMP_TARGET): $(NT)\xemacs.rc +!endif + +# This rule dumps xemacs and then possibly spawns sub-make if PURESPACE +# requirements have changed. + +$(DUMP_TARGET): $(DOC) $(RAW_EXE) $(BLDSRC)\NEEDTODUMP + $(TEMACS_BATCH) -l $(LISP)\loadup.el dump +!if $(USE_PORTABLE_DUMPER) + cd $(BLDSRC) + rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc +# Make the resource section read/write since almost all of it is the dump +# data which needs to be writable. This avoids having to copy it. + link.exe @<< + $(TEMACS_LFLAGS) -section:.rsrc,rw -out:$(BLDSRC)\xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj +<< + -$(DEL) $(BLDSRC)\xemacs.dmp +!endif + +## Update out-of-date .elcs, other than needed for dumping. +update-elc-2: + $(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP) + +$(LISP)/finder-inf.el: +!if !$(QUICK_BUILD) + @echo Building finder database ... + $(XEMACS_BATCH) -eval "(setq finder-compile-keywords-quiet t)" \ + -l finder -f finder-compile-keywords + @echo Building finder database ...(done) +!endif + +load-shadows: +!if !$(QUICK_BUILD) + @echo Testing for Lisp shadows ... + @$(XEMACS_BATCH) -f list-load-path-shadows +!endif + +######################################################################### +## Other random crap ## +######################################################################### + +########################### Automated tests +testdir = ../tests/automated +batch_test_emacs = $(BATCH_PACKAGES) -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir) + +check: + cd $(BLDSRC) + $(DO_XEMACS) $(batch_test_emacs) + +check-temacs: + cd $(BLDSRC) + $(TEMACS_BATCH) $(run_temacs_args) $(batch_test_emacs) + +check-features: all + cd $(BLDSRC) + $(XEMACS_BATCH) -l check-features.el + + +########################### Rebuilding TAGS + +tags: + @echo If you do not have a copy of etags around, then do 'make lib-src' first. + @echo To make use of the tags file, put the following in your .emacs: + @echo (setq tag-table-alist + @echo '(("$(SRCROOT:\=\\)\\" . "$(SRCROOT:\=\\)\\"))) + cd $(SRCROOT) + -$(DEL) TAGS + set PATH=lib-src;%PATH% +# we need to double ^, but only in one place, because (according to the +# nmake manual), a ^ is used to quote certain special characters such as +# backslash, but is treated literally within double quotes -- and notice +# carefully the occurrences of double quotes in the first line below! + etags -a -r "/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*\"\([^^\"]+\)\"/\2/" src\*.c src\*.h lwlib\*.c lwlib\*.h lib-src\*.c lib-src\*.h + etags -a -l none -r "/^(def\(var\|un\|alias\|const\|macro\|subst\|struct\|face\|group\|custom\|ine-\(function\|compiler-macro\|[a-z-]+alias\)\)[ ]+'?\([^ ]+\)/\3/" $(LISP)\*.el $(LISP)\mule\*.el + +########################### Install the system + +# use this rule to install the system +install: all + cd $(NT) + set COPYCMD=/y + @echo Installing in $(INSTALL_DIR) ... + @echo PlaceHolder > PlaceHolder + @$(COPY) PROBLEMS "$(INSTALL_DIR)\" + @$(COPY) PlaceHolder "$(INSTALL_DIR)\lock\" + -$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" + @$(COPY) $(BLDLIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\" + @$(COPY) $(BLDLIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" + @$(COPY) $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" + @$(COPY) $(BLDSRC)\xemacs.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" + @$(COPYDIR) $(SRCROOT)\etc "$(INSTALL_DIR)\etc\" + @$(COPYDIR) $(SRCROOT)\info "$(INSTALL_DIR)\info\" + @$(COPYDIR) $(SRCROOT)\lisp "$(INSTALL_DIR)\lisp\" + @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... + @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" + -$(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" + @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\mule-packages\" + -$(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" + @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" + -$(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" + -$(DEL) PlaceHolder + +########################### clean + +mostlyclean: + -$(DEL) $(BLDROOT)\Installation + -$(DEL) $(OUTDIR)\*.lib + -$(DEL) $(OUTDIR)\*.obj + -$(DEL) $(OUTDIR)\*.pdb + -$(DEL) $(OUTDIR)\*.res + -$(DEL) $(OUTDIR)\*.sbr + -$(DEL) $(BLDSRC)\*.exe + -$(DEL) $(BLDSRC)\*.dmp + -$(DEL) $(BLDSRC)\*.map + -$(DEL) $(BLDSRC)\*.pdb + -$(DEL) $(BLDSRC)\NEEDTODUMP + -$(DEL) $(BLDSRC)\dump-id.c + -$(DEL) $(SRC)\*.bsc + -$(DEL) $(BLDLIB_SRC)\*.exe + -$(DEL) $(BLDLIB_SRC)\*.obj + -$(DEL) $(BLDLIB_SRC)\*.pdb + -$(DEL) $(BLDLIB_SRC)\*.res + +versionclean: + -$(DEL) $(BLDSRC)\xemacs.exe + -$(DEL) $(BLDLIB_SRC)\DOC + +clean: mostlyclean versionclean + -$(DEL) $(SRCROOT)\TAGS + -$(DEL) $(LISP)\auto-autoloads.el* + -$(DEL) $(LISP)\mule\auto-autoloads.el* + -$(DEL) $(LISP)\custom-load.el* + -$(DEL) $(LISP)\mule\custom-load.el* + +nicenclean: clean + -$(DEL) $(NT)\*.bak + -$(DEL) $(NT)\*.orig + -$(DEL) $(NT)\*.rej + -$(DEL) $(NT)\*.tmp + -$(DEL) $(LIB_SRC)\*.bak + -$(DEL) $(LIB_SRC)\*.orig + -$(DEL) $(LIB_SRC)\*.rej + -$(DEL) $(LIB_SRC)\*.tmp + -$(DEL) $(SRC)\*.bak + -$(DEL) $(SRC)\*.orig + -$(DEL) $(SRC)\*.rej + -$(DEL) $(SRC)\*.tmp + -$(DEL) $(LISP)\*.bak + -$(DEL) $(LISP)\*.orig + -$(DEL) $(LISP)\*.rej + -$(DEL) $(LISP)\*.tmp + +# Convenience target. +# Reproducing the configuration is just a matter of copying, and if +# we use the same directory for Cygwin builds these must go. We don't +# want to use distclean. +configclean: + -$(DEL) $(SRC)\config.h + -$(DEL) $(SRC)\paths.h + -$(DEL) $(SRC)\Emacs.ad.h + +## This is used in making a distribution. +## Do not use it on development directories! +distclean: nicenclean configclean + -$(DEL) $(BLDLIB_SRC)\$(CONFIG_VALUES) + -$(DEL) $(INFODIR)\*.info* + -$(DEL) $(LISP)\*.elc + -$(DEL) $(LISP)\mule\*.elc + -$(DEL) $(LISP)\term\*.elc + +realclean: distclean + +#not sure about those wildcards. DOS wildcards are stupid compared to Unix, +#and could end up deleting *everything* instead of just backup files or +#whatever. So just leave it at "realclean" +extraclean: realclean +# -$(DEL) *~ +# -$(DEL) *.*~ +# -$(DEL) #* +# -$(DEL) m\*~ +# -$(DEL) m\#* +# -$(DEL) s\*~ +# -$(DEL) s\#* + +########################### Rebuild source dependency file + +depend: + cd $(SRC) + perl ./make-src-depend > depend.tmp + perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" + +########################### Redo Unicode-Encapsulation + +unicode-encapsulate: + cd $(SRC) + perl ../lib-src/make-mswin-unicode.pl --c-output intl-auto-encap-win32.c --h-output intl-auto-encap-win32.h intl-encap-win32.c +
--- a/src/ChangeLog Fri Feb 28 22:52:30 2003 +0000 +++ b/src/ChangeLog Sat Mar 01 07:25:56 2003 +0000 @@ -1,3 +1,193 @@ +2003-02-28 Ben Wing <ben@xemacs.org> + + * m/acorn.h: + * m/alliant-2800.h (UNEXEC): + * m/alliant.h: + * m/altos.h (TERMCAP): + * m/amdahl.h: + * m/arm.h: + * m/att3b.h: + * m/aviion.h: + * m/clipper.h: + * m/cnvrgnt.h: + * m/convex.h: + * m/cydra5.h: + * m/delta.h: + * m/delta88k.h: + * m/dpx2.h: + * m/elxsi.h: + * m/ews4800r.h: + * m/gould.h: + * m/hp800.h: + * m/hp9000s300.h: + * m/i860.h: + * m/ibmps2-aix.h: + * m/ibmrs6000.h: + * m/ibmrt-aix.h: + * m/ibmrt.h: + * m/intel386.h: + * m/iris4d.h: + * m/iris5d.h: + * m/iris6d.h: + * m/irist.h: + * m/m68k.h: + * m/masscomp.h: + * m/mg1.h: + * m/mips-nec.h: + * m/mips-siemens.h: + * m/mips.h: + * m/nh3000.h: + * m/nh4000.h: + * m/ns32000.h: + * m/plexus.h: + * m/powerpc.h (N_BADMAG): + * m/sequent-ptx.h: + * m/sequent.h: + * m/sgi-challenge.h: + * m/stride.h: + * m/tad68k.h: + * m/targon31.h: + * m/tekxd88.h: + * m/template.h: + * m/tower32.h: + * m/tower32v3.h: + * m/ustation.h: + * m/wicat.h: + * m/xps100.h: + * data.c: + * data.c (init_data_very_early): + * doc.c (get_doc_string): + * doc.c (Fsnarf_documentation): + * editfns.c (init_editfns): + * emacs.c: + * emacs.c (main_1): + * emacs.c (syms_of_emacs): + * lrecord.h (DUMPEDP): + * ntheap.c: + * process-unix.c: + * process-unix.c (unix_init_process): + * sysdep.c: + * sysdep.c (init_system_name): + * unexec.c: + Delete all support for bit-rotten CANNOT_DUMP. Just use pdump. + +2003-02-28 Ben Wing <ben@xemacs.org> + + * Makefile.in.in (all): + * Makefile.in.in (PROGNAME): Removed. + * Makefile.in.in (DUMP_ID): Removed. + * Makefile.in.in (DUMP_TARGET): Removed. + * Makefile.in.in (RECURSIVE_MAKE): + * Makefile.in.in (EXE_TARGET): Removed. + * Makefile.in.in (SHELL): Removed. + * Makefile.in.in (RM): Removed. + * Makefile.in.in (lispdir): Removed. + * Makefile.in.in (moduledir): Removed. + * Makefile.in.in (.SUFFIXES): Removed. + * Makefile.in.in (libsrc): Removed. + * Makefile.in.in (etcdir): Removed. + * Makefile.in.in (srcdir): Removed. + * Makefile.in.in (SRC): New. + * Makefile.in.in (lwlib_libs): Removed. + * Makefile.in.in (lwlib_deps): Removed. + * Makefile.in.in (LWLIB_SRCDIR): + * Makefile.in.in (LIBI18N): Removed. + * Makefile.in.in (X11_libs): Removed. + * Makefile.in.in (LISP): New. + * Makefile.in.in (ETC): New. + * Makefile.in.in (SRCMODULES): New. + * Makefile.in.in (LIB_SRC): New. + * Makefile.in.in (BLDSRC): New. + * Makefile.in.in (BLDMODULES): New. + * Makefile.in.in (ldap_objs): + * Makefile.in.in (postgresql_objs): + * Makefile.in.in (win32_objs): + * Makefile.in.in (cppflags): Removed. + * Makefile.in.in (cflags): Removed. + * Makefile.in.in (ldflags): Removed. + * Makefile.in.in (.c.o): Removed. + * Makefile.in.in (.c.i): Removed. + * Makefile.in.in (.c.s): Removed. + * Makefile.in.in (lwlib_lib): New. + * Makefile.in.in (other_files): + * Makefile.in.in (LIBES): + * Makefile.in.in (mo_file): + * Makefile.in.in (mo_dir): Removed. + * Makefile.in.in (DO_TEMACS): + * Makefile.in.in (RAW_EXE): New. + * Makefile.in.in (dump_temacs): + * Makefile.in.in (debug_temacs): Removed. + * Makefile.in.in (.NO_PARALLEL): + * Makefile.in.in (release): + * Makefile.in.in (update-elc-2): + * Makefile.in.in (.PHONY): + * Makefile.in.in (update-elc): Removed. + * Makefile.in.in (FRC.needtodump): New. + * Makefile.in.in (NEEDTODUMP): Removed. + * Makefile.in.in (link_deps): + * Makefile.in.in (temacs_deps): + * Makefile.in.in (temacs_link_args): + * Makefile.in.in (dump-id.c): + * Makefile.in.in (obj_src): + * Makefile.in.in (fastdump): + * Makefile.in.in (all-elc): + * Makefile.in.in (TopLevelEmacsShell.o): + * Makefile.in.in (TopLevelEmacsShell.c.rtl): + * Makefile.in.in (TransientEmacsShell.o): + * Makefile.in.in (TransientEmacsShell.c.rtl): + * Makefile.in.in (ExternalClient-Xm-shared.o): + * Makefile.in.in (ExternalClient-Xt-shared.o): + * Makefile.in.in (ExternalClient-Xlib-shared.o): + * Makefile.in.in (ExternalClient-Xm-nonshared.o): + * Makefile.in.in (ExternalClient-Xt-nonshared.o): + * Makefile.in.in (ExternalClient-Xlib-nonshared.o): + * Makefile.in.in (extw-Xt-shared.o): + * Makefile.in.in (extw-Xlib-shared.o): + * Makefile.in.in (extw-Xt-nonshared.o): + * Makefile.in.in (extw-Xlib-nonshared.o): + * Makefile.in.in (libextcli_Xm.a): + * Makefile.in.in (libextcli_Xt.a): + * Makefile.in.in (libextcli_Xlib.a): + * Makefile.in.in (extw_link_end): + * Makefile.in.in (libextcli_Xm.so.1): + * Makefile.in.in (libextcli_Xt.so.1): + * Makefile.in.in (libextcli_Xlib.so.1): + * Makefile.in.in (config.h): + * Makefile.in.in (allocax.o): + * Makefile.in.in (sunplay.o): + * Makefile.in.in (xemacs_res.o): + * Makefile.in.in (dortl): + * Makefile.in.in (lint): + * Makefile.in.in (check-features): + * Makefile.in.in (rtcmacs): + * Makefile.in.in (run-rtcmacs): + * Makefile.in.in (debug-temacs): + * Makefile.in.in (PURIFY_FLAGS): + * Makefile.in.in (puremacs): + * Makefile.in.in (quantmacs): + * Makefile.in.in (covmacs): + * Makefile.in.in (extraclean): + * Makefile.in.in (relock): + * Makefile.in.in (install): + * Makefile.in.in (depend): + * Makefile.in.in (FRC.unicode-encapsulate): New. + * Makefile.in.in (unicode-encapsulate): New. + Lots o' cleanup. Use names like LISP, SRC instead of + lispdir, srcdir, for consistency with xemacs.mak and the + conventions in the rest of the file. Eliminate use of ${...} + in favor of $(...), to make it easier to move code between + this file and xemacs.mak. Fix dependency handling wrt + NEEDTODUMP to eliminate problems some people (e.g. Vin) have + been seeing with non-GNU makes. Write a long section about + the subtle but oh-so-important differences in dependency + processing between nmake, make, and GNU make. Add + unicode-encapsulate target, from xemacs.mak. + + * chartab.c (fill_char_table): + * chartab.c (put_char_table): + * lrecord.h: + Fix crash due to attempt to free objects across dump/undump. + 2003-02-20 Mike Sperber <mike@xemacs.org> * Makefile.in.in (update-elc-2): Sequentialize dependencies even
--- a/src/Makefile.in.in Fri Feb 28 22:52:30 2003 +0000 +++ b/src/Makefile.in.in Sat Mar 01 07:25:56 2003 +0000 @@ -27,23 +27,10 @@ .PHONY: all all: build-the-mofo -PROGNAME=@PROGNAME@ - #define NOT_C_CODE #include "config.h" -#ifdef PDUMP -DUMP_TARGET = ${PROGNAME}.dmp -EXE_TARGET = ${PROGNAME} -DUMP_ID = dump-id.o -#else -DUMP_TARGET = ${PROGNAME} -EXE_TARGET = temacs -#endif - -## For performance and consistency, no built-in rules. -.SUFFIXES: -.SUFFIXES: .c .h .o .i .s .dep +## Here are the things that we expect ../configure to edit. #ifdef USE_GNU_MAKE RECURSIVE_MAKE=$(MAKE) @@ -52,17 +39,9 @@ RECURSIVE_MAKE=@RECURSIVE_MAKE@ #endif -SHELL=/bin/sh -RM = rm -f - -lispdir = ${srcdir}/../lisp/ -moduledir = ${srcdir}/../modules/ -libsrc = ../lib-src/ -etcdir = ../etc/ - -## Here are the things that we expect ../configure to edit. +PROGNAME=@PROGNAME@ prefix=@prefix@ -srcdir=@srcdir@ +SRC=@srcdir@ blddir=@blddir@ version=@version@ CC=@XEMACS_CC@ @@ -114,26 +93,20 @@ VPATH=@srcdir@ #endif +SHELL=/bin/sh RM = rm -f -LWLIB_SRCDIR = ${srcdir}/../lwlib - -#ifdef HAVE_X_WINDOWS -lwlib_libs = ../lwlib/liblw.a -lwlib_deps = $(lwlib_libs) -$(lwlib_libs) : - cd ../lwlib && $(RECURSIVE_MAKE) - -# ifdef AIX4 -LIBI18N = -li18n -# endif - -X11_libs = $(LIBI18N) -#endif /* HAVE_X_WINDOWS */ +LISP = $(SRC)/../lisp +ETC = $(SRC)/../etc +SRCMODULES = $(SRC)/../modules +LIB_SRC = ../lib-src +BLDSRC = . +BLDMODULES = ../modules +LWLIB_SRCDIR = $(SRC)/../lwlib ######################################################################### - -## Object files needed for compilation, and other rebuilt files. +## Definitions of object files and other dependencies ## +######################################################################### ## NOTE: Some of the object files are specified in this file, and others in ## configure.in. The general rule is that they be specified here whenever @@ -216,7 +189,7 @@ #endif #if defined(HAVE_LDAP) && !defined(HAVE_SHLIB) -ldap_objs=../modules/ldap/eldap.o +ldap_objs=$(BLDMODULES)/ldap/eldap.o #endif #ifdef MULE @@ -232,7 +205,7 @@ #endif #if defined(HAVE_POSTGRESQL) && !defined(HAVE_SHLIB) -postgresql_objs=../modules/postgresql/postgresql.o +postgresql_objs=$(BLDMODULES)/postgresql/postgresql.o #endif #ifdef HAVE_WIN32_PROCESSES @@ -266,43 +239,6 @@ xemacs_res.o #endif -## -Demacs is needed to make some files produce the correct version -## for use in Emacs. - -cppflags = $(CPPFLAGS) -Demacs -I. $(c_switch_all) -cflags = $(CFLAGS) $(cppflags) -#if defined (WIN32_NATIVE) || defined (CYGWIN) -ldflags = $(LDFLAGS) -mwindows -e _mainCRTStartup $(ld_switch_all) $(ld_dynamic_link_flags) -# if defined (CYGWIN) -ldflags += -Wl,--script=s/cygwin.sc -# endif -#else -ldflags = $(LDFLAGS) $(ld_switch_all) $(ld_dynamic_link_flags) -#endif - -#ifdef SOLARIS2 -%.o : %.c -#else -.c.o: -#endif - $(CC) -c $(cflags) $< - -## Create preprocessor output (debugging purposes only) -.c.i: -#ifdef __GNUC__ - $(CC) -E $(cppflags) -o $@ $< -#else /* works on Solaris; what about other systems? */ - $(CC) -P $(cppflags) $< -#endif /* compiler */ - -## Create assembler output (debugging purposes only) -.c.s: - $(CC) -S -c $(cflags) $< - -## Create RTL files -%.c.rtl : %.c - $(CC) -dr -c $(cflags) $< - ## lastfile must follow all files whose initialized data areas should ## be dumped as pure by dump-emacs. @@ -374,6 +310,8 @@ #ifdef HAVE_X_WINDOWS +lwlib_lib = ../lwlib/liblw.a + # ifdef EXTERNAL_WIDGET external_widget_objs = ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o @@ -389,9 +327,9 @@ shared_other_files = libextcli_Xt.so.1 libextcli_Xlib.so.1 # endif other_files=\ - ${motif_other_files}\ + $(motif_other_files)\ libextcli_Xt.a libextcli_Xlib.a\ - ${shared_other_files} + $(shared_other_files) # endif /* EXTERNAL_WIDGET */ @@ -408,20 +346,72 @@ otherrtls = $(otherobjs:.o=.c.rtl) othersrcs = $(otherobjs:.o=.c) -LIBES = $(lwlib_libs) $(malloclib) $(ld_libs_all) $(lib_gcc) +LIBES = $(lwlib_lib) $(malloclib) $(ld_libs_all) $(lib_gcc) #ifdef I18N3 -mo_dir = ${etcdir} -mo_file = ${mo_dir}emacs.mo +mo_file = $(LIB_SRC)/emacs.mo #endif ######################################################################### +## Implicit rules ## +######################################################################### -## Primary rebuilding process +## For performance and consistency, no built-in rules. +.SUFFIXES: +.SUFFIXES: .c .h .o .i .s .dep + +## -Demacs is needed to make some files produce the correct version +## for use in Emacs. + +cppflags = $(CPPFLAGS) -Demacs -I. $(c_switch_all) +cflags = $(CFLAGS) $(cppflags) +#if defined (WIN32_NATIVE) || defined (CYGWIN) +ldflags = $(LDFLAGS) -mwindows -e _mainCRTStartup $(ld_switch_all) $(ld_dynamic_link_flags) +# if defined (CYGWIN) +ldflags += -Wl,--script=s/cygwin.sc +# endif +#else +ldflags = $(LDFLAGS) $(ld_switch_all) $(ld_dynamic_link_flags) +#endif + +#ifdef SOLARIS2 +%.o : %.c +#else +.c.o: +#endif + $(CC) -c $(cflags) $< -DO_TEMACS = ${DUMPENV} ./${EXE_TARGET} -DO_XEMACS = ./${PROGNAME} -LISP = ${srcdir}/../lisp +## Create preprocessor output (debugging purposes only) +.c.i: +#ifdef __GNUC__ + $(CC) -E $(cppflags) -o $@ $< +#else /* works on Solaris; what about other systems? */ + $(CC) -P $(cppflags) $< +#endif /* compiler */ + +## Create assembler output (debugging purposes only) +.c.s: + $(CC) -S -c $(cflags) $< + +## Create RTL files +%.c.rtl : %.c + $(CC) -dr -c $(cflags) $< + +######################################################################### +## Primary rebuilding process ## +######################################################################### + +#ifdef PDUMP +DUMP_TARGET = $(PROGNAME).dmp +RAW_EXE = $(PROGNAME) +DUMP_ID = dump-id.o +#else +DUMP_TARGET = $(PROGNAME) +RAW_EXE = temacs +#endif + +DO_TEMACS = $(DUMPENV) ./$(RAW_EXE) +DO_XEMACS = ./$(PROGNAME) BATCH = -no-packages -batch BATCH_PACKAGES = -vanilla -batch @@ -433,112 +423,178 @@ run_temacs_args = $(temacs_loadup_args) run-temacs dump_temacs = $(TEMACS_BATCH) $(dump_temacs_args) -debug_temacs = gdb $(EXE_TARGET) - -.PHONY : build-the-mofo release update-elc update-elc-2 load-shadows - ## Compile, dump, and make sure all .elc files are up-to-date. -## NOTE: The dependencies would (should) look like the following -## commented-out statement in linear order, but apparently this causes -## problems with some versions of `make' because there is insufficient -## serialization of the build steps. Evidently the .NO_PARALLEL directive -## doesn't help. `make' really seems to be designed to have all -## dependencies proceed upward, not across, and to be all calculable before -## actually running anything. The problem here is that update-elc may -## touch NEEDTODUMP and thus create an additional dependency -## -- but *NOT UNTIL* that step is run. There is no way I can come up with -## to express such a dependency in upward fashion. +## NOTE NOTE NOTE: There appears to be a fundamental but non-obvious +## difference between the way that standard `make', GNU Make, and `nmake' +## handle dependencies, and this means we have to write the dependencies in +## Makefile.in.in and xemacs.mak differently. To illustrate this, consider +## the following first: + +##.PHONY: all (`make' only) +## all: test.exe +## +##.PHONY: FRC.test.c (`make' only) +##FRC.test.c: +## +##test.c: FRC.test.c +## if test ! -f foo ; then touch test.c; fi (`make' only) +## if not exist foo touch test.c (`nmake' only) +## +##test.obj: test.c +## touch test.obj +## +##test.exe: test.obj +## touch test.exe + +## (GNU Make doesn't need the .PHONY declarations, but evidently some versions +## of `make' do. nmake doesn't need them and doesn't allow them, either.) + +## Running `make' rebuilds test.exe only if `foo' doesn't exist. +## Running `nmake -f Makefile' rebuilds it regardless. + +## Both conclude that test.c needs to be rebuilt since its dependent is +## non-existent. But `make' recalculates its dependencies after running +## the commands for test.c, and notices that test.c hasn't changed, and +## thus test.obj and test.exe are up-to-date. `nmake' doesn't. + +## On the other hand, consider the following: -## build-the-mofo: ${EXE_TARGET} update-elc ${libsrc}DOC $(mo_file) ${other_files} ${DUMP_TARGET} update-elc-2 $(LISP)/finder-inf.el load-shadows +##.PHONY: all (`make' only) +##all: check-foo test.exe +## +##.PHONY: check-foo (`make' only) +##check-foo: +## if test ! -f foo; then touch test.c; fi (`make' only) +## if not exist foo touch test.c (`nmake' only) +## +##test.c: +## touch test.c +## +##test.obj: test.c +## touch test.obj +## +##test.exe: test.c test.obj +## touch test.exe +## -build-the-mofo: ${EXE_TARGET} ${libsrc}DOC $(mo_file) ${other_files} ${DUMP_TARGET} load-shadows -.NO_PARALLEL: ${EXE_TARGET} update-elc ${libsrc}DOC ${DUMP_TARGET} update-elc-2 +## Running `nmake -f Makefile' (and `GNU make') rebuilds test.exe only if +## `foo' doesn't exist. +## Running some versions of non-GNU `make' does nothing at all once test.c, +## test.obj and test.exe all exist. + +## It appears that `nmake' doesn't check dependencies for test.exe until it +## actually needs to be rebuilt, so this "sideways" dependency script +## works. GNU make evidently recalculates *all* dependencies after each +## command so has no problem, either. But some makes apparently calculate +## all dependencies at startup and then, after executing a command to build +## a dependency, only recheck relationships involving that particular +## dependency. + +## In XEmacs-land, the above situation exists wrt the `NEEDTODUMP' +## dependency, recalculated by `update-elc.el'. Thus, Makefile.in.in must +## use the method #1 above, and nmake must use method #2. + +## -ben + +.PHONY: build-the-mofo +build-the-mofo: $(DUMP_TARGET) $(mo_file) $(other_files) update-elc-2 $(LISP)/finder-inf.el load-shadows +.NO_PARALLEL: $(DUMP_TARGET) update-elc-2 $(LISP)/finder-inf.el load-shadows release: all -if [ -w $(LISP) ]; then \ - w=`pwd`; cd ${srcdir} && $${w}/${EXE_TARGET} -nd ${BATCH} -l $(LISP)/inc-vers; \ + w=`pwd`; cd $(SRC) && $$w/$(RAW_EXE) -nd $(BATCH) -l $(LISP)/inc-vers; \ else true; fi - -${dump_temacs} + -$(dump_temacs) touch release -update-elc: $(EXE_TARGET) - $(TEMACS_BATCH) -l $(LISP)/update-elc.el - ## Update out-of-date .elcs, other than needed for dumping. -update-elc-2: update-elc $(EXE_TARGET) $(DUMP_TARGET) +.PHONY: update-elc-2 +update-elc-2: $(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP) -$(LISP)/finder-inf.el: update-elc-2 $(EXE_TARGET) $(DUMP_TARGET) +$(LISP)/finder-inf.el: @echo "Building finder database ..." - $(XEMACS_BATCH) -eval '(setq finder-compile-keywords-quiet t)' \ + $(XEMACS_BATCH) -eval "(setq finder-compile-keywords-quiet t)" \ -l finder -f finder-compile-keywords @echo "Building finder database ...(done)" -load-shadows: $(LISP)/finder-inf.el $(EXE_TARGET) $(DUMP_TARGET) +.PHONY: load-shadows +load-shadows: #ifndef QUICK_BUILD @echo "Testing for Lisp shadows ..." @$(XEMACS_BATCH) -f list-load-path-shadows #endif +.PHONY: FRC.needtodump +FRC.needtodump: + ## This file is touched by update-elc.el when redumping is necessary. -NEEDTODUMP: - touch NEEDTODUMP +## We use $(BLDSRC) == `.' here to help keep sync with nt/xemacs.mak, +## where $(BLDSRC) is not `.'. +$(BLDSRC)/NEEDTODUMP: FRC.needtodump + $(TEMACS_BATCH) -l $(LISP)/update-elc.el -${DUMP_TARGET}: ${EXE_TARGET} NEEDTODUMP +$(DUMP_TARGET): $(RAW_EXE) $(BLDSRC)/NEEDTODUMP $(LIB_SRC)/DOC #ifdef HEAP_IN_DATA @$(RM) $@ && touch SATISFIED - ${dump_temacs} + $(dump_temacs) @if test -f SATISFIED; then $(RM) SATISFIED; else $(RM) $@; \ $(RECURSIVE_MAKE) $@; fi #else @$(RM) $@ - ${dump_temacs} + $(dump_temacs) #endif +#ifdef HAVE_X_WINDOWS +lwlib_deps = $(lwlib_lib) +$(lwlib_lib): + cd ../lwlib && $(RECURSIVE_MAKE) +#endif /* HAVE_X_WINDOWS */ + #ifdef DYNODUMP dynodump_deps = ../dynodump/dynodump.so ../dynodump/dynodump.so: cd ../dynodump && $(RECURSIVE_MAKE) #endif /* DYNODUMP */ -link_deps = $(start_files) ${objs} ${otherobjs} $(lwlib_deps) $(dynodump_deps) +link_deps = $(start_files) $(objs) $(otherobjs) $(lwlib_deps) $(dynodump_deps) -temacs_deps = $(link_deps) ${DUMP_ID} +temacs_deps = $(link_deps) $(DUMP_ID) temacs_link_args = \ - ${start_flags} ${ldflags} \ - -o $@ ${start_files} ${objs} ${otherobjs} ${DUMP_ID} ${LIBES} + $(start_flags) $(ldflags) \ + -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) $(LIBES) -${EXE_TARGET}: $(temacs_deps) +$(RAW_EXE): $(temacs_deps) $(LD) $(temacs_link_args) -dump-id.c: ${libsrc}make-dump-id ${link_deps} - ${libsrc}make-dump-id +dump-id.c: $(LIB_SRC)/make-dump-id $(link_deps) + $(LIB_SRC)/make-dump-id obj_src = $(objs:.o=.c) -${libsrc}DOC: ${libsrc}make-docfile NEEDTODUMP ${temacs_deps} ${EXE_TARGET} +$(LIB_SRC)/DOC: $(LIB_SRC)/make-docfile $(BLDSRC)/NEEDTODUMP $(temacs_deps) #ifdef QUICK_BUILD if test ! -f $@ ; then \ #else if true ; then \ #endif $(TEMACS_BATCH) -l $(LISP)/make-docfile.el -- \ - -o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \ - ${obj_src} ${mallocdocsrc} ${rallocdocsrc} \ - ${extra_doc_files} ; fi + -o $(LIB_SRC)/DOC -d $(SRC) -i $(LIB_SRC)/../site-packages \ + $(obj_src) $(mallocdocsrc) $(rallocdocsrc) \ + $(extra_doc_files) ; fi -${libsrc}make-dump-id: - cd ${libsrc} && $(RECURSIVE_MAKE) make-dump-id +$(LIB_SRC)/make-dump-id: + cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-dump-id -${libsrc}make-docfile: - cd ${libsrc} && $(RECURSIVE_MAKE) make-docfile +$(LIB_SRC)/make-docfile: + cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-docfile .PHONY: fastdump -fastdump: ${EXE_TARGET} - @$(RM) ${DUMP_TARGET} && touch SATISFIED - -${dump_temacs} +fastdump: $(RAW_EXE) + @$(RM) $(DUMP_TARGET) && touch SATISFIED + -$(dump_temacs) @$(XEMACS_BATCH) -f list-load-path-shadows .PHONY: all-elc @@ -546,8 +602,8 @@ cd .. && $(RECURSIVE_MAKE) ######################################################################### - -## Subsidiary dependency rules +## Subsidiary dependency rules ## +######################################################################### #ifdef I18N3 @@ -561,37 +617,37 @@ msgfmt= msgfmt #endif -${mo_dir}emacs.po: ${libsrc}make-msgfile ${libsrc}make-po ${objs} - ${libsrc}make-msgfile -o ${libsrc}messages ${objs} - cd ${libsrc} && ${xgettext} ${xgettext_args} - $(RM) ${mo_dir}emacs.po - cd ${libsrc} && ${libsrc}make-po -a ${mo_dir}emacs.po DOC +$(LIB_SRC)/emacs.po: $(LIB_SRC)/make-msgfile $(LIB_SRC)/make-po $(objs) + $(LIB_SRC)/make-msgfile -o $(LIB_SRC)/messages $(objs) + cd $(LIB_SRC) && $(xgettext) $(xgettext_args) + $(RM) $(LIB_SRC)/emacs.po + cd $(LIB_SRC) && $(LIB_SRC)/make-po -a $(LIB_SRC)/emacs.po DOC -${mo_dir}emacs.mo: ${mo_dir}emacs.po - cd ${mo_dir} && ${msgfmt} -o emacs.mo emacs.po +$(LIB_SRC)/emacs.mo: $(LIB_SRC)/emacs.po + cd $(LIB_SRC)/ && $(msgfmt) -o emacs.mo emacs.po -${libsrc}make-msgfile: - cd ${libsrc} && $(RECURSIVE_MAKE) make-msgfile +$(LIB_SRC)/make-msgfile: + cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-msgfile -${libsrc}make-po: - cd ${libsrc} && $(RECURSIVE_MAKE) make-po +$(LIB_SRC)/make-po: + cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-po #endif /* I18N3 */ -TopLevelEmacsShell.o : ${srcdir}/EmacsShell-sub.c config.h xintrinsicp.h EmacsShellP.h - $(CC) -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL ${srcdir}/EmacsShell-sub.c +TopLevelEmacsShell.o : $(SRC)/EmacsShell-sub.c config.h xintrinsicp.h EmacsShellP.h + $(CC) -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL $(SRC)/EmacsShell-sub.c mv EmacsShell-sub.o TopLevelEmacsShell.o -TopLevelEmacsShell.c.rtl : ${srcdir}/EmacsShell-sub.c config.h xintrinsicp.h EmacsShellP.h - $(CC) -dr -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL ${srcdir}/EmacsShell-sub.c +TopLevelEmacsShell.c.rtl : $(SRC)/EmacsShell-sub.c config.h xintrinsicp.h EmacsShellP.h + $(CC) -dr -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL $(SRC)/EmacsShell-sub.c mv EmacsShell-sub.c.rtl TopLevelEmacsShell.c.rtl -TransientEmacsShell.o : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o config.h xintrinsicp.h EmacsShellP.h - $(CC) -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c +TransientEmacsShell.o : $(SRC)/EmacsShell-sub.c TopLevelEmacsShell.o config.h xintrinsicp.h EmacsShellP.h + $(CC) -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL $(SRC)/EmacsShell-sub.c mv EmacsShell-sub.o TransientEmacsShell.o -TransientEmacsShell.c.rtl : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o config.h xintrinsicp.h EmacsShellP.h - $(CC) -dr -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c +TransientEmacsShell.c.rtl : $(SRC)/EmacsShell-sub.c TopLevelEmacsShell.o config.h xintrinsicp.h EmacsShellP.h + $(CC) -dr -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL $(SRC)/EmacsShell-sub.c mv EmacsShell-sub.c.rtl TransientEmacsShell.c.rtl ## The above rules are subject to a race condition if using a parallel make. @@ -617,58 +673,58 @@ external_client_xlib_objs_nonshared = ExternalClient-Xlib-nonshared.o extw-Xlib-nonshared.o ## Add dependencies so things work right with a parallel make -ExternalClient-Xm-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-shared.o ExternalClient-Xm-nonshared.o - $(CC) -c $(pic_arg) $(cflags) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c +ExternalClient-Xm-shared.o: $(SRC)/ExternalClient.c ExternalClient-Xt-shared.o ExternalClient-Xm-nonshared.o + $(CC) -c $(pic_arg) $(cflags) -DEXTW_USES_MOTIF $(SRC)/ExternalClient.c mv ExternalClient.o ExternalClient-Xm-shared.o -ExternalClient-Xt-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-nonshared.o - $(CC) -c $(pic_arg) $(cflags) ${srcdir}/ExternalClient.c +ExternalClient-Xt-shared.o: $(SRC)/ExternalClient.c ExternalClient-Xt-nonshared.o + $(CC) -c $(pic_arg) $(cflags) $(SRC)/ExternalClient.c mv ExternalClient.o ExternalClient-Xt-shared.o -ExternalClient-Xlib-shared.o: ${srcdir}/ExternalClient-Xlib.c ExternalClient-Xlib-nonshared.o - $(CC) -c $(pic_arg) $(cflags) ${srcdir}/ExternalClient-Xlib.c +ExternalClient-Xlib-shared.o: $(SRC)/ExternalClient-Xlib.c ExternalClient-Xlib-nonshared.o + $(CC) -c $(pic_arg) $(cflags) $(SRC)/ExternalClient-Xlib.c mv ExternalClient-Xlib.o ExternalClient-Xlib-shared.o -ExternalClient-Xm-nonshared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-nonshared.o - $(CC) -c $(cflags) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c +ExternalClient-Xm-nonshared.o: $(SRC)/ExternalClient.c ExternalClient-Xt-nonshared.o + $(CC) -c $(cflags) -DEXTW_USES_MOTIF $(SRC)/ExternalClient.c mv ExternalClient.o ExternalClient-Xm-nonshared.o -ExternalClient-Xt-nonshared.o: ${srcdir}/ExternalClient.c - $(CC) -c $(cflags) ${srcdir}/ExternalClient.c +ExternalClient-Xt-nonshared.o: $(SRC)/ExternalClient.c + $(CC) -c $(cflags) $(SRC)/ExternalClient.c mv ExternalClient.o ExternalClient-Xt-nonshared.o -ExternalClient-Xlib-nonshared.o: ${srcdir}/ExternalClient-Xlib.c - $(CC) -c $(cflags) ${srcdir}/ExternalClient-Xlib.c +ExternalClient-Xlib-nonshared.o: $(SRC)/ExternalClient-Xlib.c + $(CC) -c $(cflags) $(SRC)/ExternalClient-Xlib.c mv ExternalClient-Xlib.o ExternalClient-Xlib-nonshared.o ## We compile the common files twice (once with PIC and once without) ## because on some systems, compiling with PIC but not linking into ## a shared library messes things up. -extw-Xt-shared.o: ${srcdir}/extw-Xt.c extw-Xt-nonshared.o - $(CC) -c $(pic_arg) $(cflags) ${srcdir}/extw-Xt.c +extw-Xt-shared.o: $(SRC)/extw-Xt.c extw-Xt-nonshared.o + $(CC) -c $(pic_arg) $(cflags) $(SRC)/extw-Xt.c mv extw-Xt.o extw-Xt-shared.o -extw-Xlib-shared.o: ${srcdir}/extw-Xlib.c extw-Xlib-nonshared.o - $(CC) -c $(pic_arg) $(cflags) ${srcdir}/extw-Xlib.c +extw-Xlib-shared.o: $(SRC)/extw-Xlib.c extw-Xlib-nonshared.o + $(CC) -c $(pic_arg) $(cflags) $(SRC)/extw-Xlib.c mv extw-Xlib.o extw-Xlib-shared.o -extw-Xt-nonshared.o: ${srcdir}/extw-Xt.c - $(CC) -c $(cflags) ${srcdir}/extw-Xt.c +extw-Xt-nonshared.o: $(SRC)/extw-Xt.c + $(CC) -c $(cflags) $(SRC)/extw-Xt.c mv extw-Xt.o extw-Xt-nonshared.o -extw-Xlib-nonshared.o: ${srcdir}/extw-Xlib.c - $(CC) -c $(cflags) ${srcdir}/extw-Xlib.c +extw-Xlib-nonshared.o: $(SRC)/extw-Xlib.c + $(CC) -c $(cflags) $(SRC)/extw-Xlib.c mv extw-Xlib.o extw-Xlib-nonshared.o -libextcli_Xm.a: ${external_client_motif_objs_nonshared} - ar r libextcli_Xm.a ${external_client_motif_objs_nonshared} +libextcli_Xm.a: $(external_client_motif_objs_nonshared) + ar r libextcli_Xm.a $(external_client_motif_objs_nonshared) -libextcli_Xt.a: ${external_client_xt_objs_nonshared} - ar r libextcli_Xt.a ${external_client_xt_objs_nonshared} +libextcli_Xt.a: $(external_client_xt_objs_nonshared) + ar r libextcli_Xt.a $(external_client_xt_objs_nonshared) -libextcli_Xlib.a: ${external_client_xlib_objs_nonshared} - ar r libextcli_Xlib.a ${external_client_xlib_objs_nonshared} +libextcli_Xlib.a: $(external_client_xlib_objs_nonshared) + ar r libextcli_Xlib.a $(external_client_xlib_objs_nonshared) ## Now we try to figure out how to link a shared library. ## If we cannot figure it out, leave EXTW_LINK undefined and a shared @@ -689,8 +745,8 @@ # endif # elif defined (USG5) # if defined (IRIX) -# define EXTW_LINK(objs, output) $(LD) -shared -g -check_registry ${TOOLROOT}/usr/lib/so_locations objs -o output -extw_link_beg = $(LD) -shared -g -check_registry ${TOOLROOT}/usr/lib/so_locations +# define EXTW_LINK(objs, output) $(LD) -shared -g -check_registry $(TOOLROOT)/usr/lib/so_locations objs -o output +extw_link_beg = $(LD) -shared -g -check_registry $(TOOLROOT)/usr/lib/so_locations extw_link_mid = -o extw_link_end = # else /* not IRIX */ @@ -715,21 +771,21 @@ #ifdef EXTW_LINK -libextcli_Xm.so.1: ${external_client_motif_objs_shared} - ${extw_link_beg} ${external_client_motif_objs_shared} ${extw_link_mid} libextcli_Xm.so.1 ${extw_link_end} +libextcli_Xm.so.1: $(external_client_motif_objs_shared) + $(extw_link_beg) $(external_client_motif_objs_shared) $(extw_link_mid) libextcli_Xm.so.1 $(extw_link_end) -libextcli_Xt.so.1: ${external_client_xt_objs_shared} - ${extw_link_beg} ${external_client_xt_objs_shared} ${extw_link_mid} libextcli_Xt.so.1 ${extw_link_end} +libextcli_Xt.so.1: $(external_client_xt_objs_shared) + $(extw_link_beg) $(external_client_xt_objs_shared) $(extw_link_mid) libextcli_Xt.so.1 $(extw_link_end) -libextcli_Xlib.so.1: ${external_client_xlib_objs_shared} - ${extw_link_beg} ${external_client_xlib_objs_shared} ${extw_link_mid} libextcli_Xlib.so.1 ${extw_link_end} +libextcli_Xlib.so.1: $(external_client_xlib_objs_shared) + $(extw_link_beg) $(external_client_xlib_objs_shared) $(extw_link_mid) libextcli_Xlib.so.1 $(extw_link_end) #endif /* EXTW_LINK */ #endif /* EXTERNAL_WIDGET */ -config.h: ${srcdir}/config.h.in -Emacs.ad.h: ${srcdir}/${etcdir}Emacs.ad +config.h: $(SRC)/config.h.in +Emacs.ad.h: $(ETC)/Emacs.ad config.h sheap-adjust.h paths.h Emacs.ad.h : @echo "The file $@ needs to be re-generated." @@ -748,10 +804,10 @@ #ifdef C_ALLOCA #else #ifndef HAVE_ALLOCA -allocax.o : ${srcdir}/alloca.s config.h +allocax.o : $(SRC)/alloca.s config.h ## $(CPP) is cc -E, which may get confused by filenames ## that do not end in .c. So copy file to a safe name. */ -## cp ${srcdir}/alloca.s allocatem.c +## cp $(SRC)/alloca.s allocatem.c ## Remove any ^L, blank lines, and preprocessor comments, ## since some assemblers barf on them. Use a different basename for the ## output file, since some stupid compilers (Green Hill) use that @@ -768,10 +824,10 @@ #ifdef HAVE_NATIVE_SOUND sound_cflags=@sound_cflags@ -sunplay.o: ${srcdir}/sunplay.c - $(CC) -c $(sound_cflags) $(cflags) ${srcdir}/sunplay.c -hpplay.o: ${srcdir}/hpplay.c - $(CC) -c -Demacs $(sound_cflags) $(cflags) ${srcdir}/hpplay.c +sunplay.o: $(SRC)/sunplay.c + $(CC) -c $(sound_cflags) $(cflags) $(SRC)/sunplay.c +hpplay.o: $(SRC)/hpplay.c + $(CC) -c -Demacs $(sound_cflags) $(cflags) $(SRC)/hpplay.c #endif /* HAVE_NATIVE_SOUND */ #if defined(HAVE_GLADE_GLADE_H) || defined(HAVE_GLADE_H) @@ -782,12 +838,12 @@ extra_doc_files=emacs-widget-accessors.c ui-byhand.c $(glade_files) #endif -xemacs_res.o: ${srcdir}/../nt/xemacs.rc - windres --include-dir ${srcdir}/../nt -i ${srcdir}/../nt/xemacs.rc -o $@ +xemacs_res.o: $(SRC)/../nt/xemacs.rc + windres --include-dir $(SRC)/../nt -i $(SRC)/../nt/xemacs.rc -o $@ ######################################################################### - -## Other random crap +## Other random crap ## +######################################################################### dortl : $(obj_rtl) $(otherrtls) echo "(defvar source-files '(" > $(LISP)/source-files.el @@ -796,7 +852,7 @@ done) echo "))" >> $(LISP)/source-files.el -## Lint Section +###################### Lint LINT.c=$(LINT) $(LINTFLAGS) $(LINTINCLUDES) LINTFILES= $(objs:.o=.ln) LINTINCLUDES = $(cppflags) @@ -805,11 +861,10 @@ .PHONY: lint lint: $(LINTFILES) $(LINT.c) $(LINTFILES) -## end of Lint Section -## We have automated tests!! -testdir = ${srcdir}/../tests/automated -batch_test_emacs = ${BATCH_PACKAGES} -l ${testdir}/test-harness.el -f batch-test-emacs ${testdir} +###################### Automated tests +testdir = $(SRC)/../tests/automated +batch_test_emacs = $(BATCH_PACKAGES) -l $(testdir)/test-harness.el -f batch-test-emacs $(testdir) .PHONY: check check-temacs check-features check: @@ -819,8 +874,8 @@ check-features: all $(XEMACS_BATCH) -l check-features.el -## Debugging targets: -## +###################### Debugging targets + ## None of the debugging products work with a dumped xemacs binary, ## because it does unexpected things like free memory that has been ## malloc'ed in a *different* process!! So we need to run these on @@ -831,8 +886,8 @@ rtc_patch_area -o $@ rtcmacs: $(temacs_deps) rtc_patch.o - $(RM) ${EXE_TARGET}; $(RECURSIVE_MAKE) ${EXE_TARGET} RTC_patch_objs=rtc_patch.o - mv ${EXE_TARGET} rtcmacs + $(RM) $(RAW_EXE); $(RECURSIVE_MAKE) $(RAW_EXE) RTC_patch_objs=rtc_patch.o + mv $(RAW_EXE) rtcmacs .PHONY: run-rtcmacs run-rtcmacs: rtcmacs @@ -842,11 +897,11 @@ ignore POLL; \ check -access; \ suppress rui; \ - runargs -nd ${BATCH} ${run_temacs_args} -vanilla; \ + runargs -nd $(BATCH) $(run_temacs_args) -vanilla; \ run' rtcmacs -debug-temacs: ${EXE_TARGET} - -${debug_temacs} +debug-temacs: $(RAW_EXE) + -gdb $(RAW_EXE) ## Purify, Quantify, PureCoverage are software quality products from ## Rational, formerly Pure Atria, formerly Pure Software. @@ -859,11 +914,11 @@ -search-mmaps=yes\ #endif -chain-length=32 -ignore-signals=SIGPOLL\ - -cache-dir=${blddir}/purecache -always-use-cache-dir=yes + -cache-dir=$(blddir)/purecache -always-use-cache-dir=yes puremacs: $(temacs_deps) $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) $(PURIFY_LIBS) - cp $@ ${EXE_TARGET} + cp $@ $(RAW_EXE) ## Quantify #ifdef QUANTIFY @@ -875,30 +930,40 @@ quantmacs: $(temacs_deps) $(QUANTIFY_PROG) $(QUANTIFY_FLAGS) $(LD) $(temacs_link_args) - cp $@ ${EXE_TARGET} + cp $@ $(RAW_EXE) #endif /* QUANTIFY */ PURECOV_PROG=purecov covmacs: $(temacs_deps) $(PURECOV_PROG) $(LD) $(temacs_link_args) +###################### Clean + .PHONY: mostlyclean clean distclean realclean versionclean extraclean mostlyclean: - $(RM) temacs puremacs quantmacs *.o *.i \ - core temacs.exe sheap-adjust.h + $(RM) *.o *.i *.rtl *.ln core \ + temacs puremacs quantmacs covmacs rtcmacs temacs.exe \ + sheap-adjust.h dump-id.c $(BLDSRC)/NEEDTODUMP SATISFIED \ + $(LIB_SRC)/*.po $(LIB_SRC)/*.mo +versionclean: + $(RM) $(RAW_EXE) $(DUMP_TARGET) $(LIB_SRC)/DOC +## Remove the generated load files here; they cause lots of problems +## when they don't work right. clean: mostlyclean versionclean - $(RM) libextcli* + $(RM) libextcli* $(LISP)/auto-autoloads.el* $(LISP)/custom-load.el* \ + $(LISP)/mule/auto-autoloads.el* $(LISP)/mule/custom-load.el* \ + $(SRCMODULES)/auto-autoloads.el* $(SRCMODULES)/custom-load.el* ## This is used in making a distribution. ## Do not use it on development directories! distclean: clean - $(RM) config.h paths.h Emacs.ad.h \ - GNUmakefile Makefile Makefile.in TAGS ${PROGNAME}.* + $(RM) config.h paths.h Emacs.ad.h $(LISP)/finder-inf.el* \ + GNUmakefile Makefile Makefile.in TAGS $(PROGNAME).* realclean: distclean -versionclean: - $(RM) ${EXE_TARGET} ${DUMP_TARGET} ${libsrc}DOC extraclean: realclean $(RM) *~ \#* m/*~ m/\#* s/*~ s/\#* +###################### Lock, unlock + .PHONY : lock unlock SOURCES = *.[chm] *.pswm [sm]/* COPYING paths.h.in Makefile.in.in \ config.h.in README COPYING ChangeLog @@ -908,14 +973,16 @@ relock: chmod -w $(SOURCES) +###################### Installation + ## Header files for ellcc #ifdef HAVE_SHLIB MAKEPATH=../lib-src/make-path -install: ${PROGNAME} - ${MAKEPATH} ${archlibdir}/include ${archlibdir}/include/m ${archlibdir}/include/s +install: $(PROGNAME) + $(MAKEPATH) $(archlibdir)/include $(archlibdir)/include/m $(archlibdir)/include/s -@echo "Copying include files for ellcc..." -@hdir=`pwd`; \ - cd ${srcdir}; hdrdir2=`pwd`; cd $$hdir; \ + cd $(SRC); hdrdir2=`pwd`; cd $$hdir; \ test "$$hdrdir2" != "$$hdir" && hdir="$$hdir $$hdrdir2"; \ (for thisdir in $$hdir; do \ cd $$thisdir && \ @@ -926,22 +993,32 @@ test -d s && hdrtars="$$hdrtars s/*"; \ test -d m && hdrtars="$$hdrtars m/*"; \ test -n "$$hdrtars" && (tar cf - $$hdrtars) | \ - (cd ${archlibdir}/include && umask 022 && tar xf -); \ - chmod 755 ${archlibdir}/include; \ - test -d ${archlibdir}/include/s && \ - chmod 755 ${archlibdir}/include/s; \ - test -d ${archlibdir}/include/m && \ - chmod 755 ${archlibdir}/include/s;) \ + (cd $(archlibdir)/include && umask 022 && tar xf -); \ + chmod 755 $(archlibdir)/include; \ + test -d $(archlibdir)/include/s && \ + chmod 755 $(archlibdir)/include/s; \ + test -d $(archlibdir)/include/m && \ + chmod 755 $(archlibdir)/include/s;) \ done) #endif +###################### Dependencies + ## Dependency processing using home-grown script, not makedepend .PHONY: depend FRC.depend: depend: FRC.depend - cd ${srcdir} && $(RM) depend.tmp && \ + cd $(SRC) && $(RM) depend.tmp && \ perl ./make-src-depend > depend.tmp && \ if cmp -s depend depend.tmp; \ then $(RM) depend.tmp; \ else $(RM) depend && mv depend.tmp depend; \ fi + +###################### Unicode encapsulation + +.PHONY: unicode-encapsulate +FRC.unicode-encapsulate: +unicode-encapsulate: FRC.unicode-encapsulate + cd $(SRC) && \ + perl ../lib-src/make-mswin-unicode.pl --c-output intl-auto-encap-win32.c --h-output intl-auto-encap-win32.h intl-encap-win32.c
--- a/src/chartab.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/chartab.c Sat Mar 01 07:25:56 2003 +0000 @@ -470,9 +470,11 @@ #ifdef MULE for (i = 0; i < NUM_LEADING_BYTES; i++) { - /* Don't get stymied when initting the table */ + /* Don't get stymied when initting the table, or when trying to + free a pdump object. */ if (!EQ (ct->level1[i], Qnull_pointer) && - CHAR_TABLE_ENTRYP (ct->level1[i])) + CHAR_TABLE_ENTRYP (ct->level1[i]) && + !OBJECT_DUMPED_P (ct->level1[1])) free_lcrecord (ct->level1[i]); ct->level1[i] = value; } @@ -1050,7 +1052,8 @@ else { int lb = XCHARSET_LEADING_BYTE (range->charset) - MIN_LEADING_BYTE; - if (CHAR_TABLE_ENTRYP (ct->level1[lb])) + if (CHAR_TABLE_ENTRYP (ct->level1[lb]) && + !OBJECT_DUMPED_P (ct->level1[lb])) free_lcrecord (ct->level1[lb]); ct->level1[lb] = val; }
--- a/src/data.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/data.c Sat Mar 01 07:25:56 2003 +0000 @@ -1,7 +1,7 @@ /* Primitive operations on Lisp data types for XEmacs Lisp interpreter. Copyright (C) 1985, 1986, 1988, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. - Copyright (C) 2000, 2001, 2002 Ben Wing. + Copyright (C) 2000, 2001, 2002, 2003 Ben Wing. This file is part of XEmacs. @@ -2332,10 +2332,8 @@ We don't want to call `signal' in this case so that we don't have trouble with dumping signal-delivering routines in an inconsistent state. */ -#ifndef CANNOT_DUMP if (!initialized) return; -#endif /* CANNOT_DUMP */ EMACS_SIGNAL (SIGFPE, arith_error); #ifdef uts EMACS_SIGNAL (SIGEMT, arith_error);
--- a/src/depend Fri Feb 28 22:52:30 2003 +0000 +++ b/src/depend Sat Mar 01 07:25:56 2003 +0000 @@ -34,8 +34,8 @@ event-xlike-inc.o: #endif #if defined(HAVE_X_WINDOWS) -EmacsFrame.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h -EmacsManager.o: $(CONFIG_H) EmacsManager.h EmacsManagerP.h xintrinsicp.h xmmanagerp.h +EmacsFrame.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xmu.h +EmacsManager.o: $(CONFIG_H) EmacsManager.h EmacsManagerP.h xintrinsicp.h xmmanagerp.h xmotif.h xmprimitivep.h EmacsShell-sub.o: $(CONFIG_H) EmacsShell.h EmacsShellP.h xintrinsic.h xintrinsicp.h EmacsShell.o: $(CONFIG_H) EmacsShell.h ExternalShell.h xintrinsicp.h balloon-x.o: $(LISP_H) balloon_help.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h xintrinsic.h @@ -43,16 +43,16 @@ console-x.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h process.h redisplay.h xintrinsic.h device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h elhash.h events.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h sysdep.h sysdll.h sysfile.h systime.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h dialog-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console-x-impl.h console-x.h console.h events.h frame-impl.h frame.h frameslots.h gui-x.h gui.h opaque.h redisplay.h scrollbar.h systime.h window.h xintrinsic.h -frame-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gutter.h objects-impl.h objects-x-impl.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h systime.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h -glyphs-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h imgproc.h insdel.h lstream.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h sysfile.h sysproc.h syssignal.h systime.h window-impl.h window.h winslots.h xintrinsic.h xmu.h -gui-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h events.h frame.h glyphs.h gui-x.h gui.h menubar.h opaque.h redisplay.h scrollbar.h specifier.h systime.h window-impl.h window.h winslots.h xintrinsic.h +frame-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gutter.h objects-impl.h objects-x-impl.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h systime.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xmu.h +glyphs-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h imgproc.h insdel.h lstream.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h sysfile.h sysproc.h syssignal.h systime.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h xmu.h +gui-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h events.h frame.h glyphs.h gui-x.h gui.h menubar.h opaque.h redisplay.h scrollbar.h specifier.h systime.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h intl-x.o: $(LISP_H) console-x.h console.h xintrinsic.h menubar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h events.h frame-impl.h frame.h frameslots.h gui-x.h gui.h keymap.h menubar.h opaque.h redisplay.h scrollbar.h systime.h window-impl.h window.h winslots.h xintrinsic.h objects-x.o: $(LISP_H) charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h insdel.h objects-impl.h objects-x-impl.h objects-x.h objects.h specifier.h xintrinsic.h -redisplay-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console-x-impl.h console-x.h console.h debug.h device-impl.h device.h devslots.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gutter.h mule-ccl.h objects-impl.h objects-x-impl.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h sysdep.h sysproc.h syssignal.h systime.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmprimitivep.h +redisplay-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console-x-impl.h console-x.h console.h debug.h device-impl.h device.h devslots.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gutter.h mule-ccl.h objects-impl.h objects-x-impl.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h sysdep.h sysproc.h syssignal.h systime.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h scrollbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h redisplay.h scrollbar-x.h scrollbar.h specifier.h window-impl.h window.h winslots.h xintrinsic.h -select-x.o: $(LISP_H) charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h objects-x.h objects.h opaque.h redisplay.h select-common.h select.h systime.h xintrinsic.h -toolbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar-common.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h +select-x.o: $(LISP_H) charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h objects-x.h objects.h opaque.h redisplay.h select-common.h select.h systime.h xintrinsic.h xmotif.h +toolbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar-common.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xgccache.o: $(LISP_H) hash.h xgccache.h #endif #if defined(HAVE_TTY) @@ -137,7 +137,7 @@ emodules.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h console.h emodules.h file-coding.h frame.h insdel.h lstream.h redisplay.h scrollbar.h sysdep.h sysdll.h window.h esd.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h miscplay.h sound.h sysfile.h eval.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console.h device.h frame.h lstream.h opaque.h profile.h redisplay.h scrollbar.h window.h -event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h glyphs.h lstream.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h sysproc.h syssignal.h systime.h systty.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h +event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h glyphs.h lstream.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h sysproc.h syssignal.h systime.h systty.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h event-stream.o: $(LISP_H) backtrace.h blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h events.h file-coding.h frame-impl.h frame.h frameslots.h gui.h insdel.h keymap.h lstream.h macros.h menubar.h process.h profile.h redisplay.h scrollbar.h sysdep.h sysfile.h syssignal.h systime.h window-impl.h window.h winslots.h event-unixoid.o: $(LISP_H) conslots.h console-impl.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h events.h lstream.h process.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h events.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-tty-impl.h console-tty.h console.h device.h events.h extents.h frame-impl.h frame.h frameslots.h glyphs.h keymap.h lstream.h redisplay.h scrollbar.h specifier.h systime.h systty.h toolbar.h window-impl.h window.h winslots.h @@ -161,7 +161,7 @@ glyphs.o: $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gui.h insdel.h objects-impl.h objects.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h sysfile.h window-impl.h window.h winslots.h gmalloc.o: $(LISP_H) getpagesize.h sysdep.h gpmevent.o: $(LISP_H) commands.h conslots.h console-impl.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h events.h frame.h gpmevent.h lstream.h process.h redisplay.h sysdep.h sysproc.h syssignal.h systime.h systty.h -gui.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h elhash.h gui.h menubar.h +gui.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h elhash.h gui.h menubar.h redisplay.h gutter.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gutter.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h hash.o: $(LISP_H) hash.h hftctl.o: $(LISP_H) sysfile.h @@ -169,7 +169,7 @@ imgproc.o: $(LISP_H) imgproc.h indent.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h console.h device.h extents.h faces.h frame.h glyphs.h insdel.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h inline.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-gtk.h console-impl.h console-msw.h console.h database.h device-impl.h device.h devslots.h elhash.h events.h extents-impl.h extents.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h intl-auto-encap-win32.h keymap.h lstream.h objects-impl.h objects.h opaque.h process.h rangetab.h redisplay.h scrollbar.h specifier.h syntax.h sysdll.h sysfile.h systime.h syswindows.h toolbar.h tooltalk.h ui-gtk.h window-impl.h window.h winslots.h xintrinsic.h -input-method-motif.o: $(LISP_H) EmacsFrame.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device.h frame-impl.h frame.h frameslots.h redisplay.h xintrinsic.h +input-method-motif.o: $(LISP_H) EmacsFrame.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device.h frame-impl.h frame.h frameslots.h redisplay.h xintrinsic.h xmotif.h input-method-xlib.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h events.h frame-impl.h frame.h frameslots.h redisplay.h scrollbar.h systime.h window-impl.h window.h winslots.h xintrinsic.h insdel.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h console.h device.h extents.h frame.h insdel.h line-number.h lstream.h redisplay.h intl-auto-encap-win32.o: $(LISP_H) intl-auto-encap-win32.h syswindows.h @@ -202,12 +202,12 @@ process-nt.o: $(LISP_H) console-msw.h console.h hash.h intl-auto-encap-win32.h lstream.h process-slots.h process.h procimpl.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h process-unix.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h console.h events.h file-coding.h frame.h hash.h lstream.h ndir.h opaque.h process-slots.h process.h procimpl.h redisplay.h scrollbar.h sysdep.h sysdir.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h window.h process.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h console.h device.h events.h file-coding.h frame.h hash.h insdel.h lstream.h opaque.h process-slots.h process.h procimpl.h redisplay.h scrollbar.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h window.h -profile.o: $(LISP_H) backtrace.h bytecode.h elhash.h hash.h syssignal.h systime.h +profile.o: $(LISP_H) backtrace.h bytecode.h elhash.h hash.h profile.h syssignal.h systime.h ralloc.o: $(LISP_H) getpagesize.h rangetab.o: $(LISP_H) rangetab.h realpath.o: $(LISP_H) intl-auto-encap-win32.h ndir.h sysdir.h sysfile.h syswindows.h redisplay-output.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gutter.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h -redisplay.o: $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h conslots.h console-impl.h console-tty.h console.h debug.h device-impl.h device.h devslots.h elhash.h events.h extents-impl.h extents.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs.h gui.h gutter.h insdel.h line-number.h menubar.h objects-impl.h objects.h process.h profile.h redisplay.h scrollbar.h specifier.h sysfile.h systime.h systty.h toolbar.h window-impl.h window.h winslots.h +redisplay.o: $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h conslots.h console-impl.h console-tty.h console.h debug.h device-impl.h device.h devslots.h elhash.h events.h extents-impl.h extents.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs.h gui.h gutter.h insdel.h line-number.h menubar.h objects-impl.h objects.h opaque.h process.h profile.h redisplay.h scrollbar.h specifier.h sysfile.h systime.h systty.h toolbar.h window-impl.h window.h winslots.h regex.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h regex.h syntax.h scrollbar.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h glyphs.h gutter.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h search.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h insdel.h opaque.h regex.h syntax.h
--- a/src/doc.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/doc.c Sat Mar 01 07:25:56 2003 +0000 @@ -245,7 +245,6 @@ XSTRING_DATA (name_reloc), O_RDONLY | OPEN_BINARY, 0); if (fd < 0) { -#ifndef CANNOT_DUMP if (purify_flag) { /* sizeof ("../lib-src/") == 12 */ @@ -257,7 +256,6 @@ fd = qxe_open (name_nonreloc, O_RDONLY | OPEN_BINARY, 0); } -#endif /* CANNOT_DUMP */ if (fd < 0) report_file_error ("Cannot open doc string file", @@ -456,28 +454,15 @@ ISO 2022 data because our pointers will reflect internal format, not external format. */ -#ifndef CANNOT_DUMP if (!purify_flag) invalid_operation ("Snarf-documentation can only be called in an undumped Emacs", Qunbound); -#endif CHECK_STRING (filename); -#ifdef CANNOT_DUMP - if (!NILP (Vdoc_directory)) - { - CHECK_STRING (Vdoc_directory); - name = alloca_ibytes (XSTRING_LENGTH (filename) - + XSTRING_LENGTH (Vdoc_directory) - + 1); - qxestrcpy (name, XSTRING_DATA (Vdoc_directory)); - } - else -#endif /* CANNOT_DUMP */ - { - name = alloca_ibytes (XSTRING_LENGTH (filename) + 14); - qxestrcpy (name, (Ibyte *) "../lib-src/"); - } + { + name = alloca_ibytes (XSTRING_LENGTH (filename) + 14); + qxestrcpy (name, (Ibyte *) "../lib-src/"); + } qxestrcat (name, XSTRING_DATA (filename));
--- a/src/editfns.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/editfns.c Sat Mar 01 07:25:56 2003 +0000 @@ -89,10 +89,8 @@ /* Set up system_name even when dumping. */ init_system_name (); -#ifndef CANNOT_DUMP if (!initialized) return; -#endif if ((p = egetenv ("NAME"))) /* I don't think it's the right thing to do the ampersand
--- a/src/emacs.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/emacs.c Sat Mar 01 07:25:56 2003 +0000 @@ -1132,8 +1132,11 @@ We try to do things in an order that minimizes the non-obvious dependencies between functions. */ - /* purify_flag 1 is correct even if CANNOT_DUMP. - * loadup.el will set to nil at end. */ + /* purify_flag is set to indicate we are dumping (its name refers to + purespace, which no longer exists and was a way of marking some + areas read-only so they could be shared among many processes). + + loadup.el will set to nil at end. */ purify_flag = 0; #ifdef PDUMP @@ -2906,8 +2909,6 @@ /* dumping XEmacs (to a new EXE file) */ /************************************************************************/ -#ifndef CANNOT_DUMP - #if !defined (PDUMP) || !defined (SYSTEM_MALLOC) extern Char_Binary my_edata[]; #endif @@ -3012,8 +3013,6 @@ return Qnil; } -#endif /* not CANNOT_DUMP */ - /************************************************************************/ /* exiting XEmacs (intended or not) */ @@ -3802,9 +3801,7 @@ void syms_of_emacs (void) { -#ifndef CANNOT_DUMP DEFSUBR (Fdump_emacs); -#endif /* !CANNOT_DUMP */ DEFSUBR (Frun_emacs_from_temacs); DEFSUBR (Frunning_temacs_p);
--- a/src/lrecord.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/lrecord.h Sat Mar 01 07:25:56 2003 +0000 @@ -1474,12 +1474,14 @@ extern unsigned int dump_id; extern char *pdump_start, *pdump_end; -#define DUMPEDP(adr) ((((char *)(adr)) < pdump_end) && (((char *)(adr)) >= pdump_start)) - +#define DUMPEDP(adr) ((((char *) (adr)) < pdump_end) && \ + (((char *) (adr)) >= pdump_start)) #else #define DUMPEDP(adr) 0 #endif +#define OBJECT_DUMPED_P(obj) DUMPEDP (XPNTR (obj)) + /***********************************************************************/ /* data descriptions */ /***********************************************************************/
--- a/src/m/acorn.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/acorn.h Sat Mar 01 07:25:56 2003 +0000 @@ -58,12 +58,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* This prevents Emacs dumping an unsqueezed binary with the SQUEEZE bit set in the magic number. */
--- a/src/m/alliant-2800.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/alliant-2800.h Sat Mar 01 07:25:56 2003 +0000 @@ -50,11 +50,6 @@ /* include <sys/param.h> for the definition of LOADAVG_SCALE, and also LOADAVG_SIZE, the number of items in the Loadavg array. */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ #define UNEXEC "unexfx2800.o" #define LIBS_MACHINE "-lalliant"
--- a/src/m/alliant.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/alliant.h Sat Mar 01 07:25:56 2003 +0000 @@ -39,12 +39,6 @@ #undef LOAD_AVE_TYPE #undef LOAD_AVE_CVT -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/altos.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/altos.h Sat Mar 01 07:25:56 2003 +0000 @@ -41,7 +41,6 @@ #undef TERMINFO -#undef CANNOT_DUMP #define TERMCAP #define LIBS_TERMCAP "-ltermlib"
--- a/src/m/amdahl.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/amdahl.h Sat Mar 01 07:25:56 2003 +0000 @@ -49,12 +49,6 @@ /*#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)*/ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/arm.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/arm.h Sat Mar 01 07:25:56 2003 +0000 @@ -65,12 +65,6 @@ #endif -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* this brings in alloca() if we're using cc */ #ifdef USG #define NO_REMAP
--- a/src/m/att3b.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/att3b.h Sat Mar 01 07:25:56 2003 +0000 @@ -37,11 +37,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/aviion.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/aviion.h Sat Mar 01 07:25:56 2003 +0000 @@ -37,12 +37,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/clipper.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/clipper.h Sat Mar 01 07:25:56 2003 +0000 @@ -40,11 +40,6 @@ #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/cnvrgnt.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/cnvrgnt.h Sat Mar 01 07:25:56 2003 +0000 @@ -34,12 +34,6 @@ #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/convex.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/convex.h Sat Mar 01 07:25:56 2003 +0000 @@ -50,12 +50,6 @@ #define LOAD_AVE_CVT(x) (int) ((x) * 100.0) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/cydra5.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/cydra5.h Sat Mar 01 07:25:56 2003 +0000 @@ -37,12 +37,6 @@ #define LOAD_AVE_CVT(x) x -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/*#define CANNOT_DUMP*/ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/delta.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/delta.h Sat Mar 01 07:25:56 2003 +0000 @@ -42,12 +42,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/delta88k.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/delta88k.h Sat Mar 01 07:25:56 2003 +0000 @@ -44,12 +44,6 @@ /* Convert that into an integer that is 100 for a load average of 1.0 */ /* #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define NO_REMAP if memory segmentation makes it not work well to change the boundary between the text section and data section when Emacs is dumped. If you define this, the preloaded Lisp
--- a/src/m/dpx2.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/dpx2.h Sat Mar 01 07:25:56 2003 +0000 @@ -49,12 +49,6 @@ #define FSCALE 1000.0 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/*#define CANNOT_DUMP /**/ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/elxsi.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/elxsi.h Sat Mar 01 07:25:56 2003 +0000 @@ -50,16 +50,6 @@ #define LOAD_AVE_CVT(x) (int) ((x) * 100.0) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. - - Earlier versions couldn't dump. - Changes for 12.0 release are in 19.1. - Dumping should work now. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/ews4800r.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ews4800r.h Sat Mar 01 07:25:56 2003 +0000 @@ -36,12 +36,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/gould.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/gould.h Sat Mar 01 07:25:56 2003 +0000 @@ -65,12 +65,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/hp800.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/hp800.h Sat Mar 01 07:25:56 2003 +0000 @@ -51,12 +51,6 @@ #define LOAD_AVE_CVT(x) ((int) (x * 100.0)) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/hp9000s300.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/hp9000s300.h Sat Mar 01 07:25:56 2003 +0000 @@ -46,12 +46,6 @@ #define hp9000s300 #endif -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Let the OS header file determine this if not HPUX. */ #ifdef HPUX # define UNEXEC "unexhp9k3.o"
--- a/src/m/i860.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/i860.h Sat Mar 01 07:25:56 2003 +0000 @@ -39,12 +39,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/ibmps2-aix.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ibmps2-aix.h Sat Mar 01 07:25:56 2003 +0000 @@ -53,12 +53,6 @@ /* USG systems do not actually support the load average, so disable it for them. */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define addresses, macros, change some setup for dump */ #define NO_REMAP
--- a/src/m/ibmrs6000.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ibmrs6000.h Sat Mar 01 07:25:56 2003 +0000 @@ -29,10 +29,8 @@ #define IBMR2AIX -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ #ifdef USG5_4 +/* Just use PDUMP. */ #define CANNOT_DUMP #endif
--- a/src/m/ibmrt-aix.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ibmrt-aix.h Sat Mar 01 07:25:56 2003 +0000 @@ -34,12 +34,6 @@ /* No load average information appears in the AIX kernel. VRM has this info, and if anyone desires they should fix fns.c to get it out of VRM */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define addresses, macros, change some setup for dump */ #undef COFF
--- a/src/m/ibmrt.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ibmrt.h Sat Mar 01 07:25:56 2003 +0000 @@ -43,12 +43,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/intel386.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/intel386.h Sat Mar 01 07:25:56 2003 +0000 @@ -106,12 +106,6 @@ #endif #endif /* not SOLARIS2 */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - #ifdef XENIX /* Define NO_REMAP if memory segmentation makes it not work well
--- a/src/m/iris4d.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/iris4d.h Sat Mar 01 07:25:56 2003 +0000 @@ -49,12 +49,6 @@ #define KERNEL_FILE "/unix" #endif -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/iris5d.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/iris5d.h Sat Mar 01 07:25:56 2003 +0000 @@ -50,12 +50,6 @@ #undef KERNEL_FILE #define KERNEL_FILE "/unix" -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/iris6d.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/iris6d.h Sat Mar 01 07:25:56 2003 +0000 @@ -49,12 +49,6 @@ #define KERNEL_FILE "/unix" #endif -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/irist.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/irist.h Sat Mar 01 07:25:56 2003 +0000 @@ -76,12 +76,6 @@ #define FSCALE 1.0 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/m68k.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/m68k.h Sat Mar 01 07:25:56 2003 +0000 @@ -27,12 +27,6 @@ #define m68k #endif -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - #ifdef linux #define NO_REMAP
--- a/src/m/masscomp.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/masscomp.h Sat Mar 01 07:25:56 2003 +0000 @@ -39,12 +39,6 @@ #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/mg1.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/mg1.h Sat Mar 01 07:25:56 2003 +0000 @@ -50,12 +50,6 @@ #define FSCALE 1000.0 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ -/* ns16000's have an unexec, so should the mg-1 */ -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/mips-nec.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/mips-nec.h Sat Mar 01 07:25:56 2003 +0000 @@ -57,12 +57,6 @@ #undef KERNEL_FILE #define KERNEL_FILE "/unix" -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/mips-siemens.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/mips-siemens.h Sat Mar 01 07:25:56 2003 +0000 @@ -57,12 +57,6 @@ #undef KERNEL_FILE #define KERNEL_FILE "/unix" -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/mips.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/mips.h Sat Mar 01 07:25:56 2003 +0000 @@ -52,12 +52,6 @@ #define KERNEL_FILE "/unix" #endif /* ! linux */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/nh3000.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/nh3000.h Sat Mar 01 07:25:56 2003 +0000 @@ -47,12 +47,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/nh4000.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/nh4000.h Sat Mar 01 07:25:56 2003 +0000 @@ -46,12 +46,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/ns32000.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ns32000.h Sat Mar 01 07:25:56 2003 +0000 @@ -37,12 +37,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/plexus.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/plexus.h Sat Mar 01 07:25:56 2003 +0000 @@ -39,12 +39,6 @@ #undef LOAD_AVE_CVT -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/powerpc.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/powerpc.h Sat Mar 01 07:25:56 2003 +0000 @@ -57,10 +57,6 @@ #define NO_REMAP -#ifdef CANNOT_DUMP - -#endif /* CANNOT_DUMP */ - #define N_BADMAG(x) BADMAG(x) #define N_TXTOFF(x) A_TEXTPOS(x) #define N_SYMOFF(x) A_SYMPOS(x)
--- a/src/m/sequent-ptx.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/sequent-ptx.h Sat Mar 01 07:25:56 2003 +0000 @@ -49,12 +49,6 @@ #define FSCALE 1000.0 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/sequent.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/sequent.h Sat Mar 01 07:25:56 2003 +0000 @@ -58,12 +58,6 @@ #define FSCALE 1000.0 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/sgi-challenge.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/sgi-challenge.h Sat Mar 01 07:25:56 2003 +0000 @@ -62,12 +62,6 @@ #undef KERNEL_FILE #define KERNEL_FILE "/unix" -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/stride.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/stride.h Sat Mar 01 07:25:56 2003 +0000 @@ -42,12 +42,6 @@ #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* The STRIDE system is more powerful than standard USG5. */ #define SKTPAIR
--- a/src/m/tad68k.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/tad68k.h Sat Mar 01 07:25:56 2003 +0000 @@ -31,11 +31,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/targon31.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/targon31.h Sat Mar 01 07:25:56 2003 +0000 @@ -40,12 +40,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/tekxd88.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/tekxd88.h Sat Mar 01 07:25:56 2003 +0000 @@ -35,11 +35,6 @@ /* Convert that into an integer that is 100 for a load average of 1.0 */ /* #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ -/*#define CANNOT_DUMP*/ - /* Define NO_REMAP if memory segmentation makes it not work well to change the boundary between the text section and data section when Emacs is dumped. If you define this, the preloaded Lisp
--- a/src/m/template.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/template.h Sat Mar 01 07:25:56 2003 +0000 @@ -37,12 +37,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#define CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/tower32.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/tower32.h Sat Mar 01 07:25:56 2003 +0000 @@ -38,12 +38,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/tower32v3.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/tower32v3.h Sat Mar 01 07:25:56 2003 +0000 @@ -38,12 +38,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/ustation.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/ustation.h Sat Mar 01 07:25:56 2003 +0000 @@ -40,12 +40,6 @@ #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/wicat.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/wicat.h Sat Mar 01 07:25:56 2003 +0000 @@ -43,12 +43,6 @@ #undef LOAD_AVE_CVT -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -#undef CANNOT_DUMP - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/m/xps100.h Fri Feb 28 22:52:30 2003 +0000 +++ b/src/m/xps100.h Sat Mar 01 07:25:56 2003 +0000 @@ -39,12 +39,6 @@ /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - /* Define C_ALLOCA if this machine does not support a true alloca and the one written in C should be used instead. Define HAVE_ALLOCA to say that the system provides a properly
--- a/src/ntheap.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/ntheap.c Sat Mar 01 07:25:56 2003 +0000 @@ -224,7 +224,7 @@ return result; } -#if !defined (CANNOT_DUMP) && !defined (HEAP_IN_DATA) && !defined (PDUMP) +#if !defined (HEAP_IN_DATA) && !defined (PDUMP) /* Recreate the heap from the data that was dumped to the executable. EXECUTABLE_PATH tells us where to find the executable. */ @@ -286,7 +286,8 @@ /* Update system version information to match current system. */ cache_system_info (); } -#endif /* CANNOT_DUMP */ + +#endif /* !defined (HEAP_IN_DATA) && !defined (PDUMP) */ /* Round the heap up to the given alignment. */ void
--- a/src/process-unix.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/process-unix.c Sat Mar 01 07:25:56 2003 +0000 @@ -2,7 +2,7 @@ Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. - Copyright (C) 1995, 1996, 2001, 2002 Ben Wing. + Copyright (C) 1995, 1996, 2001, 2002, 2003 Ben Wing. This file is part of XEmacs. @@ -823,9 +823,7 @@ static void unix_init_process (void) { -#ifndef CANNOT_DUMP if (! noninteractive || initialized) -#endif EMACS_SIGNAL (SIGCHLD, sigchld_handler); } #endif /* SIGCHLD */
--- a/src/sysdep.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/sysdep.c Sat Mar 01 07:25:56 2003 +0000 @@ -2085,11 +2085,7 @@ /* Need start_of_data() as much as possible now, for total_data_usage(); but with PDUMP and WIN32_NATIVE, can't currently do it. */ -#if !defined (CANNOT_DUMP) && (!defined (PDUMP) || !defined (WIN32_NATIVE)) -#define NEED_STARTS -#endif - -#if !defined (SYSTEM_MALLOC) && !defined (NEED_STARTS) +#if ! (defined (PDUMP) && defined (WIN32_NATIVE) && defined (SYSTEM_MALLOC)) #define NEED_STARTS #endif @@ -2173,7 +2169,7 @@ #endif /* ORDINARY_LINK */ #endif /* DATA_START */ } -#endif /* NEED_STARTS (not CANNOT_DUMP or not SYSTEM_MALLOC) */ +#endif /* NEED_STARTS aka !(PDUMP && WIN32_NATIVE && SYSTEM_MALLOC) */ extern void *minimum_address_seen; /* from xmalloc() */ extern void *maximum_address_seen; /* from xmalloc() */ @@ -2255,9 +2251,7 @@ /* Turn the hostname into the official, fully-qualified hostname. Don't do this if we're going to dump; this can confuse system libraries on some machines and make the dumped emacs core dump. */ -# ifndef CANNOT_DUMP if (initialized) -# endif /* not CANNOT_DUMP */ if (!strchr (hostname, '.')) { # if !(defined(HAVE_GETADDRINFO) && defined(HAVE_GETNAMEINFO))
--- a/src/unexec.c Fri Feb 28 22:52:30 2003 +0000 +++ b/src/unexec.c Sat Mar 01 07:25:56 2003 +0000 @@ -196,8 +196,6 @@ # define sun 1 #endif -#ifndef CANNOT_DUMP /* all rest of file! */ - #ifdef COFF_ENCAPSULATE int need_coff_header = 1; #include <coff-encap/a.out.encap.h> /* The location might be a poor assumption */ @@ -1202,5 +1200,3 @@ #endif /* COFF_BSD_SYMBOLS */ #endif /* COFF */ - -#endif /* not CANNOT_DUMP */