view nt/install @ 31380:2d74ed749db8

(vc-next-action-on-file): Do not visit the file if it's not necessary. If verbose in state `needs-patch', do the same as under `up-to-date'. When NOT verbose and `needs-patch', check out latest version instead of `merge-news'. (vc-next-action-dired): Don't mess with default-directory here; it breaks other parts of dired. It is the job of the backend-specific functions to adjust it temporarily if they need it. (vc-next-action): Remove a special CVS case. (vc-clear-headers): New optional arg FILE. (vc-checkin, vc-checkout): Set properties vc-state and vc-checkout-time properly. (vc-finish-steal): Call steal-lock, not steal, which doesn't exist. (vc-print-log): Use new backend function `show-log-entry'. (vc-cancel-version): Do the checks in a different order. Added a FIXME concerning RCS-only code. (vc-responsible-backend): New optional arg `register'. (vc-default-could-register): New function. (vc-dired-buffers-for-dir, vc-dired-resynch-file): New functions. (vc-resynch-buffer): Call vc-dired-resynch-file. (vc-start-entry, vc-finish-logentry, vc-revert-buffer): Use vc-resynch-buffer instead of vc-resynch-window. (vc-next-action-dired): Don't redisplay here, that gets done as a result of the individual file operations. (vc-retrieve-snapshot): Corrected prompt order. (vc-version-diff): Use `require' to check for existence of diff-mode. (vc-do-command): Doc fix. (vc-finish-logentry): When checking in from vc-dired, choose the right backend for logentry check. (vc-dired-mode-map): Inherit from dired-mode-map. (vc-dired-mode): Local value of dired-move-to-filename-regexp simplified. (vc-dired-state-info): Removed, updated caller. (vc-default-dired-state-info): Use parentheses instead of hyphens. (vc-dired-hook): Use vc-BACKEND-dir-state, if available. (vc-dired-listing-switches): New variable. (vc-directory): Use it, instead of dired-listing-switches. (vc-revert-buffer): Hide the frame for dedicated windows (vc-update-changelog): Split into generic part and default implementation. Doc string adapted. (vc-default-update-changelog): New function. Call the `rcs2log' script in exec-directory, to fix a long-standing nuisance. (vc-next-action-on-file): Doc fix. (vc-maybe-resolve-conflicts): Don't just toggle smerge-mode. (vc-print-log): Eval `file' before constructing the continuation. (vc-next-action-on-file): Corrected several messages. (vc-merge): Add prefix arg `merge-news'; handle it. (vc-finish-logentry): Thinko in the "same comment" detection. (vc-parent-buffer, vc-parent-buffer-name): Protect them against kill-all-local-variables. (vc-log-edit): Don't save vc-parent-buffer any more. (vc-last-comment-match): Initialize to an empty string. (vc-post-command-functions): New hook. (vc-do-command): Run it. (vc-next-action-on-file): Remove unnecessary pop-to-buffer. (vc-finish-logentry): Only add the comment to the ring if it's different from the last comment entered. (vc-new-comment-index): New function. (vc-previous-comment): Use it. Make the minibuffer message slightly less terse. (vc-comment-search-reverse): Make it work forward as well. Don't set vc-comment-ring-index if no match is found. Use vc-new-comment-index. (vc-comment-search-forward): Use vc-comment-search-reverse. (vc-dired-mode-map): Don't inherit from dired-mode-map since define-derived-mode will do it for us. Bind `v' to a keymap that inherits from vc-prefix-map so that we can bind `vt' without binding C-x v t. (vc-retrieve-snapshot): Parenthesis typo. (vc-create-snapshot, vc-default-create-snapshot): Swap DIR and NAME. (vc-retrieve-snapshot): Split into two parts. (vc-default-retrieve-snapshot): New function. (vc-do-command): Remove unused commands. (vc-version-diff): Make sure default-directory ends with a slash. Move the window commands into a vc-exec-after. (vc-print-log): Move more of the code into the `vc-exec-after'. (vc-exec-after): Fix disassembly of previous sentinel. (vc-print-log): Search current revision from beginning of buffer. (vc-revert-buffer): Clear echo area after the diff is finished. (vc-prefix-map): Removed definition of "t" for terse display in vc dired. (vc-dired-mode-map): Inherit from dired-mode-map. Added definition of "vt" for terse display. (vc-dired-mode): Fix dired-move-to-filename-regexp. (vc-exec-after): Avoid caddr. (vc-exec-after): New function. (vc-do-command): Use it to add a termination message for async procs. (vc-checkout): Try to handle a missing-backend situation. (vc-version-diff): Use vc-exec-after to fix the behavior for diffs of a directory with a backend using async diffs. (vc-print-log): Use vc-exec-after and use log-view-goto-rev if present. (vc-next-action-on-file): Use vc-revert-buffer to revert when there are no changes. (vc-prefix-map): Move the autoload to vc-hooks.el and move the `fset' outside of the defvar so that it works even if vc-prefix-map was already defined. (vc-setup-buffer): New function, split out of vc-do-command. (vc-do-command): Allow BUFFER to be t to mean `just use the current buffer without any fuss'. (vc-version-diff): Change the `diff' backend operation to just put the diff in the current buffer without erasing it. Always use (vc-workfile-unchanged-p): If checkout-time comparison is not possible, use vc-BACKEND-workfile-unchanged-p. (vc-default-workfile-unchanged-p): New function. Delegates to a full vc-BACKEND-diff. (vc-editable-p): Renamed from vc-writable-p. (with-vc-file, vc-merge): Use vc-editable-p. (vc-do-command): Remove unused var vc-file and fix the doubly-defined `status' var. Add a user message when starting an async command. (vc-restore-buffer-context, vc-resynch-buffer, vc-start-entry) (vc-finish-steal, vc-checkin, vc-finish-logentry, vc-rename-file): Use with-current-buffer. (vc-buffer-sync): Use unless. (vc-next-action-on-file): If the file is 'edited by read-only, make it read-write instead of trying to commit. (vc-version-diff, vc-update-change-log): Use `setq default-directory' rather than `cd'. (vc-log-edit): Don't forget to set default-directory in the buffer. (vc-checkout): Don't do anything special for ange-ftp files since ange-ftp already has vc-registered return nil. (vc-do-command): Use file-relative-name. (vc-responsible-backend): Use vc-backend if possible. (vc-create-snapshot): Improve the `interactive' spec. Add support for branches and dispatch to backend-specific `create-snapshot'. (vc-default-create-snapshot): New function, containing the bulk of the old vc-create-snapshot. (vc-retrieve-snapshot): Improve the interactive spec. (vc-do-command): Get rid of the `last' argument. (vc-header-alist): Remove, replaced by vc-X-header. (vc-insert-headers): Use vc-X-header instead of vc-header-alist. (vc-dired-hook): Use expand-file-name instead of concat. (vc-directory): Use file-name-as-directory. (vc-snapshot-precondition, vc-create-snapshot) (vc-retrieve-snapshot): Allow the command to operate on any directory. Update Copyright and add a crude list of backend funs. (vc-writable-p): New function. (with-vc-file): Use vc-writable-p. (vc-next-action-on-file): Update call to vc-steal-lock and cleanup. (vc-register): Avoid vc-name. (vc-locking-user): Remove. (vc-steal-lock): Make the `owner' arg non-optional. (vc-merge): Use vc-writable-p instead of vc-locking-user and vc-checkout-model. (vc-default-dired-state-info): Use vc-state instead of vc-locking-user and return special strings for special states. (vc-dired-hook): Use vc-up-to-date-p instead of vc-locking-user and get rid of one of the special CVS cases. (vc-cancel-version): prettify error message with \\[...]. (vc-rename-master): New function. (vc-rename-file): Use vc-BACKEND-rename-file (which might in turn use vc-rename-master) instead of vc-BACKEND-record-rename. Make the CVS special case generic. (vc-default-record-rename): Remove. (vc-file-tree-walk-internal): Only call FUNC for files that are under control of some VC backend and replace `concat' with expand-file-name. (vc-file-tree-walk): Update docstring. (vc-version-diff, vc-snapshot-precondition, vc-create-snapshot) (vc-retrieve-snapshot): Update call to vc-file-tree-walk. (vc-version-diff): Expand file name read from the minibuffer. Handle the case when a previous version number can't be guessed. Give suitable messages when there were no differences found. (vc-clear-headers): Call backend-specific implementation, if one exists. (vc-cancel-version): Made error checks generic. When done, clear headers generically, too. (vc-locking-user): Moved from vc-hooks.el. (vc-version-diff): Left out a vc- in call to vc-call-backend. (vc-default-dired-state-info, vc-default-record-rename) (vc-default-merge-news): Update for the new backend argument. (vc-merge): Use vc-find-backend-function. (vc-register): Put a FIXME note for a newly found bug. Call vc-call-backend without the leading vc-. (vc-responsible-backend, vc-finish-logentry, vc-annotate) (vc-check-headers): Call vc-call-backend without the leading vc-. (vc-annotate-time-span): Replace confusing use of `cond' with `or'. (vc-annotate-display): Replace confusing use of `cond' with `or'. Call vc-call-backend without the leading vc-. (vc-process-filter): New function. (vc-do-command): Setup `vc-process-filter' for the async process. (vc-maybe-resolve-conflicts): New function to reduce code-duplication. Additionally, it puts the buffer in `smerge-mode' if applicable. (vc-next-action-on-file): Use `vc-maybe-resolve-conflicts' after calling `merge-news'. (vc-merge): Use `vc-maybe-resolve-conflicts' after calling `merge'. (vc-log-edit): New function. Replacement for `vc-log-mode' by interfacing to log-edit.el. (vc-start-entry): Call `vc-log-edit' instead of `vc-log-mode' if log-edit is available. (vc-resolve-conflicts): Delegate to `smerge-ediff' if available. (vc-register): Remove `vc-buffer-backend' setup. (vc-log-mode-map): New name for vc-log-entry-mode and merge the defvar and the initialization. (vc-log-mode): Minor docstring fix and use vc-log-mode-map. (vc-file-clear-masterprops): Removed. (vc-checkin, vc-revert-buffer): Removed calls to the above. (vc-version-diff): Use buffer-size without argument. (vc-register): Heed vc-initial-comment. (vc-workfile-unchanged-p): Remove unused argument `want-differences-if-changed' and simplify. (vc-next-action-on-file) [needs-merge]: Resynch the buffer. (vc-revert-buffer): Use `unchanged-p' rather than vc-diff's status output (which is invalid for async vc-diff) to decide whether to do the revert silently or not. (with-vc-file, vc-next-action, vc-version-diff) (vc-dired-mark-locked): Replaced usage of vc-locking-user with vc-state or vc-up-to-date-p. (vc-merge): Use vc-backend-defines to check whether merging is possible. Set state to 'edited after successful merge. (vc-recompute-state, vc-next-action-on-file): Update to new `vc-state' semantics. (vc-finish-steal): Set 'vc-state to 'edited rather than setting 'vc-locking-user to the current user. (vc-merge): Inline vc-backend-merge. Comment out code that I don't understand and hence can't adapt to the new `vc-state' and `vc-locking-user' semantics. (vc-backend-merge): Remove. (vc-do-command): kill-all-local-variables, to reset any major-mode in which the buffer might have been put earlier. Use `remove' and `when'. Allow `okstatus' to be `async' and use `start-process' in this case. (vc-version-diff): Handle the case where the diff looks empty because of the use of an async process. (vc-next-action-on-file): Removed optional parameter `simple'. Recompute state unconditionally. (vc-default-toggle-read-only): Removed. (vc-backend-dispatch, vc-annotate-mode-syntax-table): Remove. (vc-prefix-map): Move from vc-hooks.el and make autoloaded. (vc-release-greater-or-equal-p): Move to vc-rcs.el. (vc-file-clear-masterprops): Braindead "fix". It was a nop and still is. So maybe it should be removed. (vc-head-version, vc-find-binary): Remove. (vc-recompute-state): Move from vc-hooks.el. (vc-next-action-on-file): Add a `simple' argument to allow avoiding the `recompute' step (use for vc-cvs-simple-toggle). (vc-default-toggle-read-only, vc-default-record-rename): New functions. (vc-next-action, vc-dired-hook): Use vc-state instead of vc-cvs-status. (vc-dired-mode-map): Properly defvar it. (vc-print-log): Call log-view-mode if available. (small-temporary-file-directory): defvar instead of use boundp. (vc-merge-news): Moved to vc-cvs.el. (vc-default-merge-news): New function. (function' quotes. (vc-annotate-mode-map, vc-annotate-mode-syntax-table): Initialize directly in the defvar. (vc-do-command): Bind inhibit-read-only so as to properly handle the case where the destination buffer has been made read-only. (vc-diff): Delegate to vc-version-diff in all cases. (vc-version-diff): Setup the *vc-diff* buffer as was done in vc-diff. (vc-annotate-mode-variables): Removed (code moved partly to defvars and partly to vc-annotate-add-menu). (vc-annotate-mode): Turned into a derived-mode. (vc-annotate-add-menu): Moved in code in vc-annotate-mode-variables. (vc-update-change-log): Use make-temp-file if available. (vc-next-action-on-file): Added handling of state `unlocked-changes'. (vc-checkout-carefully): Is now practically obsolete, unless the above is too slow to be enabled unconditionally. (vc-update-change-log): Fixed typo. (vc-responsible-backend): New function. (vc-register): Largely rewritten. (vc-admin): Removed (implementation moved into vc-register). (vc-checkin): Redocumented. (vc-finish-logentry): If no backend defined yet (because we are in the process of registering), use the responsible backend. Updated callers of `vc-checkout-required' to use `vc-checkout-model'. (vc-backend-release, vc-backend-release-p): Functions moved into vc-rcs.el (vc-backend-revert): Function moved into `vc-revert'; `vc-next-action' must be updated to accomodate this change. (vc-backend-steal): Function moved into `vc-finish-steal'. (vc-backend-logentry-check): Function moved into `vc-finish-logentry'. (vc-backend-printlog): Function moved into `vc-print-log'. (vc-backend-uncheck): Function moved into `vc-cancel-version'. (vc-backend-assign-name): Function moved into `vc-create-snapshot'. (vc-workfile-unchanged-p,vc-diff,vc-version-diff): Updated to use the vc-BACKEND-diff functions instead; `vc-diff' is now working. Typo fixed. This checkin is made with our new VC code base for the very first time. A simple `(vc-checkin (buffer-file-name))' was used to perform it. (vc-checkin): Merged with `vc-backend-checkin' and updated to match the split into various backends. (vc-backend-checkin): Removed. Merged with `vc-checkin'. (vc-retrieve-snapshot): Bug fix. (vc-next-action-on-file): Bug found and fixed. (vc-checkout, vc-version-other-window, vc-retrieve-snapshot) (vc-cancel-version): Handle of vc-BACKEND-checkout updated. (vc-next-action-on-file): Rewritten for the new state model. (vc-backend-merge-news): Renamed to `vc-merge-news'. (Specific parts still need to be split, and implemented for RCS). (vc-admin): Updated to handle selection of appropriate backend. Current implementation is crufty and need re-thinking. (vc-annotate-get-backend, vc-annotate-display-default) (vc-annotate-add-menu, vc-annotate, vc-annotate-display): Annotate functionality updated quite a lot to support multiple backends. Variables `vc-annotate-mode', `vc-annotate-buffers', `vc-annotate-backend' added. Renamed `vc-uses-locking' to `vc-checkout-required'. Renamed the `locked' state to `reserved'. (vc-update-change-log): Use small-temporary-file-directory, if defined. (Merged from main line, slightly adapted.) Split the annotate feature into a BACKEND specific part and moved it from the vc-cvs.el file to this one. (vc-resynch-window): Added TODO comment: check for interaction with view mode according to recent RCS change. (vc-backend-merge-news): Merged "CMUP" patch from mainline. Converted the remaining function comments to documentation strings. (vc-backend-release, vc-release-greater-or-equal) (vc-backend-release-p, vc-trunk-p, vc-branch-p, vc-branch-part) (vc-minor-part, vc-previous-version): Functions that operate and compare revision numbers got proper documentation. Comments added about their possible removal. (vc-latest-on-branch-p): Function removed and replaced in the vc-backend.el files. (vc-backend-diff): Function removed and placed in the backend files. (vc-backend-checkout): Function removed and replaced in the vc-backend.el files. (vc-backend-admin): Removed and replaced in the vc-backend.el files. (Martin): Removed all the annotate functionality since it is CVS backend specific. [Merged from mainline.] (vc-dired-mode): Make the dired-move-to-filename-regexp regexp match the date, to avoid treating date as file size. Add YYYY S option to WESTERN/ Require `compile' when compiling. (vc-logentry-check-hook): New option. (vc-steal-lock): Use compose-mail. (vc-dired-mode-map): Defvar when compiling. (vc-add-triple, vc-record-rename, vc-lookup-triple): Moved to vc-sccs.el and renamed. Callers changed. (vc-backend-checkout, vc-backend-logentry-check) (vc-backend-merge-news): Doc fix. (vc-default-logentry-check): New function. (vc-backend-checkin, vc-backend-revert, vc-backend-steal) (vc-backend-uncheck, vc-backend-print-log, vc-backend-assign-name) (vc-backend-merge): Doc fix. Use backend functions. (vc-check-headers): Use backend functions. (vc-backend-release): Call vc-system-release. (vc-rcs-release, vc-cvs-release, vc-sccs-release): Moved to backend files. (vc-backend-release): Dispatch to backend functions. (vc-backend-release-p): Don't mention CVS, RCS. [The SCCS case probably needs attention.] (vc-dired-mode, vc-dired-reformat-line, vc-dired-purge): Doc fix. (vc-fetch-cvs-status): Moved to vc-cvs.el and renamed. (vc-default-dired-state-info): New function. (vc-dired-state-info): Dispatch to backends. (vc-dired-hook): Doc fix. Simplify, pending removal of CVS specifics. (vc-file-clear-masterprops, vc-latest-on-branch-p) (vc-version-other-window, vc-backend-assign-name): Removed references to vc-latest-version; sometimes changed into vc-workfile-version. (with-vc-file, vc-next-action-on-file, vc-merge) (vc-backend-checkout): Changed calls to `vc-checkout-model' to `vc-uses-locking'. (vc-fetch-cvs-status): Use renamed vc-cvs-parse-status. Some doc fixes for autoloaded and interactive functions. Fix compilation warnings from ediff stuff. (vc-rcs-release, vc-cvs-release, vc-sccs-release): Custom fix. This is 1.244 from the emacs sources
author Gerd Moellmann <gerd@gnu.org>
date Mon, 04 Sep 2000 19:46:19 +0000
parents abf9c5bc5a0f
children
line wrap: on
line source

		      Building and Installing Emacs
		      on Windows NT and Windows 95

You need a compiler package to build and install Emacs on NT or Win95.
If you don't have one, precompiled versions are available in
ftp://ftp.cs.washington.edu/pub/ntemacs/<version>.

Configuring:

(1) In previous versions, you needed to edit makefile.def
    to reflect the compiler package that you are using.  You should no
    longer have to do this if you have defined the INCLUDE and LIB 
    environment variables, as is customary for use with Windows compilers.
    (Unless you are using MSVCNT 1.1, in which case you will need
    to set MSVCNT11 to be a non-zero value at the top of makefile.def.)

(2) Choose the directory into which Emacs will be installed, and
    edit makefile.def to define INSTALL_DIR to be this directory.  
    (Alternatively, if you have INSTALL_DIR set as an environment
    variable, the build process will ignore the value in makefile.def
    and use the value of the environment variable instead.)  Note 
    that if it is not installed in the directory in which it is built,
    the ~16 MB of lisp files will be copied into the installation directory.

    Also, makefile.def is sometimes unpacked read-only; use
   
    > attrib -r makefile.def

    to make it writable.

(3) You may need to edit nt/paths.h to specify some other device
    instead of `C:'.

Building:

(4) The target to compile the sources is "all", and is recursive starting 
    one directory up.  The makefiles for the NT port are in files named 
    "makefile.nt".  To get things started, type in this directory:

    > nmake -f makefile.nt all

    or use the ebuild.bat file.

    When the files are compiled, you will see some warning messages declaring
    that some functions don't return a value, or that some data conversions
    will be lossy, etc.  You can safely ignore these messages.  The warnings
    may be fixed in the main FSF source at some point, but until then we
    will just live with them.

    NOTE: You should not have to edit src\paths.h to get Emacs to run
    correctly.  All of the variables in src\paths.h are configured
    during start up using the nt\emacs.bat file (which gets installed 
    as bin\emacs.bat -- see below).

Installing:

(5) Currently, Emacs requires a number of environment variables to be set
    for it to run correctly.  A batch file, emacs.bat, is provided that 
    sets these variables appropriately and then runs the executable
    (emacs.bat is generated using the definition of INSTALL_DIR in
    nt\makefile.def and the contents of nt\emacs.bat.in).

(6) The install process will install the files necessary to run Emacs in 
    INSTALL_DIR (which may be the directory in which it was built), 
    and create a program manager/folder icon in a folder called GNU Emacs.
    From this directory, type:

    > nmake -f makefile.nt install

    or use the install.bat file.

(7) Create the Emacs startup file.  Under Unix, this file is .emacs;
    under NT and Win95, this files is _emacs.  (If you would like to
    use a .emacs file that, for example, you share with a Unix version
    of Emacs, you can invoke Emacs with the -l option to specify the
    .emacs file that you would like to load.)  Note that Emacs requires 
    the environment variable HOME to be set in order for it to locate the 
    _emacs file.  Ideally, HOME should not be set in the emacs.bat file 
    as it will be different for each user.  (HOME could be set, 
    for example, in the System panel of the Control Panel).

(8) Either click on the icon, or run the emacs.bat file, and away you go.

    If you would like to resize the command window that Emacs uses,
    or change the font or colors, click on the program manager icon
    to start Emacs.  Change the settings using the "-" menu in the upper
    left hand corner of the window, making sure to select the "Save"
    options in the dialog boxes as you do so.  Exit Emacs and restart.