Mercurial > emacs
view nt/configure.bat @ 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 | 7ba96d66b0c5 |
children | eb8bb73d0c23 |
line wrap: on
line source
@echo off rem ---------------------------------------------------------------------- rem Configuration script for MS Windows 95/98 and NT/2000 rem Copyright (C) 1999, 2000 Free Software Foundation, Inc. rem This file is part of GNU Emacs. rem GNU Emacs is free software; you can redistribute it and/or modify rem it under the terms of the GNU General Public License as published by rem the Free Software Foundation; either version 2, or (at your option) rem any later version. rem GNU Emacs is distributed in the hope that it will be useful, rem but WITHOUT ANY WARRANTY; without even the implied warranty of rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the rem GNU General Public License for more details. rem You should have received a copy of the GNU General Public License rem along with GNU Emacs; see the file COPYING. If not, write to the rem Free Software Foundation, Inc., 59 Temple Place - Suite 330, rem Boston, MA 02111-1307, USA. rem ---------------------------------------------------------------------- rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: rem rem + MS Windows 95/98 or NT/2000 rem + either MSVC 2.x or later, or gcc-2.95 or later (with gmake 3.75 rem or later) and the Mingw32 and W32 API headers and libraries rem rem For reference, here is a list of which builds of gmake are known to rem work or not, and whether they work in the presence and/or absence of rem sh.exe. rem rem sh exists no sh rem cygwin b20.1 make (3.75): okay[1] fails[2] rem MSVC compiled gmake 3.77: okay okay rem MSVC compiled gmake 3.78.1: okay okay rem MSVC compiled gmake 3.79.1: okay okay rem mingw32/gcc-2.92.2 make (3.77): okay okay rem cygwin compiled gmake 3.77: okay[1] fails[2] rem cygwin compiled gmake 3.78.1: okay fails[2] rem cygwin compiled gmake 3.79.1: couldn't build make[3] rem rem [1] doesn't cope with makefiles with DOS line endings, so must mount rem emacs source with text!=binary. rem [2] fails when needs to invoke shell commands; okay invoking gcc etc. rem [3] requires LC_MESSAGES support to build; maybe 2.95.x update to rem cygwin provides this? rem rem ---------------------------------------------------------------------- rem See if the environment is large enough. We need 43 (?) bytes. set $foo$=123456789_123456789_123456789_123456789_123 if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv set $foo$= rem ---------------------------------------------------------------------- rem Make sure we are running in the nt subdir if exist configure.bat goto start echo You must run configure from the nt subdirectory. goto end :start rem ---------------------------------------------------------------------- rem Default settings. set prefix= set nodebug=N set noopt=N set nocygwin=N set COMPILER= set usercflags= set userldflags= set sep1= set sep2= rem ---------------------------------------------------------------------- rem Handle arguments. :again if "%1" == "-h" goto usage if "%1" == "--help" goto usage if "%1" == "--prefix" goto setprefix if "%1" == "--with-gcc" goto withgcc if "%1" == "--with-msvc" goto withmsvc if "%1" == "--no-debug" goto nodebug if "%1" == "--no-opt" goto noopt if "%1" == "--no-cygwin" goto nocygwin if "%1" == "--cflags" goto usercflags if "%1" == "--ldflags" goto userldflags if "%1" == "" goto checkutils :usage echo Usage: configure [options] echo Options: echo. --prefix PREFIX install Emacs in directory PREFIX echo. --with-gcc use GCC to compile Emacs echo. --with-msvc use MSVC to compile Emacs echo. --no-debug exclude debug info from executables echo. --no-opt disable optimization echo. --no-cygwin use -mno-cygwin option with GCC echo. --cflags FLAG pass FLAG to compiler echo. --ldflags FLAG pass FLAG to compiler when linking goto end rem ---------------------------------------------------------------------- :setprefix shift set prefix=%1 shift goto again rem ---------------------------------------------------------------------- :withgcc set COMPILER=gcc shift goto again rem ---------------------------------------------------------------------- :withmsvc set COMPILER=cl shift goto again rem ---------------------------------------------------------------------- :nodebug set nodebug=Y shift goto again rem ---------------------------------------------------------------------- :noopt set noopt=Y shift goto again rem ---------------------------------------------------------------------- :nocygwin set nocygwin=Y shift goto again rem ---------------------------------------------------------------------- :usercflags shift set usercflags=%usercflags%%sep1%%1 set sep1= %nothing% shift goto again rem ---------------------------------------------------------------------- :userldflags shift set userldflags=%userldflags%%sep2%%1 set sep2= %nothing% shift goto again rem ---------------------------------------------------------------------- rem Check that necessary utilities (cp and rm) are present. :checkutils echo Checking for 'cp'... cp configure.bat junk.bat if not exist junk.bat goto needcp echo Checking for 'rm'... rm junk.bat if exist junk.bat goto needrm goto checkcompiler :needcp echo You need 'cp' (the Unix file copy program) to build Emacs. goto end :needrm del junk.bat echo You need 'rm' (the Unix file delete program) to build Emacs. goto end rem ---------------------------------------------------------------------- rem Auto-detect compiler if not specified, and validate GCC if chosen. :checkcompiler if (%COMPILER%)==(cl) goto genmakefiles if (%COMPILER%)==(gcc) goto checkgcc echo Checking whether 'cl' is available... echo main(){} >junk.c cl -nologo -c junk.c if exist junk.obj goto clOK echo Checking whether 'gcc' is available... gcc -c junk.c if not exist junk.o goto nocompiler del junk.o :checkgcc if (%nocygwin%) == (Y) goto checkw32api echo Checking whether gcc requires '-mno-cygwin'... echo #include "cygwin/version.h" >junk.c echo main(){} >>junk.c gcc -c junk.c if not exist junk.o goto checkw32api gcc -mno-cygwin -c junk.c if exist junk.o set nocygwin=Y del junk.o junk.c :checkw32api rem ---------------------------------------------------------------------- rem Older versions of the Windows API headers either don't have any of rem the IMAGE_xxx definitions (the headers that come with Cygwin b20.1 rem are like this), or have a typo in the definition of rem IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this rem problem). The gcc/mingw32 2.95.2 headers are okay, as are distros rem of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least. rem echo Checking whether W32 API headers are too old... echo #include "windows.h" >junk.c echo test(PIMAGE_NT_HEADERS pHeader)>>junk.c echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);}>>junk.c gcc -c junk.c if exist junk.o goto gccOk :nocompiler echo. echo Configure failed. echo To configure Emacs for Windows, you need to have either echo gcc-2.95 or later with Mingw32 and the W32 API headers, echo or MSVC 2.x or later. del junk.c goto end :gccOk set COMPILER=gcc del junk.c junk.o echo Using 'gcc' goto genmakefiles :clOk set COMPILER=cl del junk.c junk.obj echo Using 'MSVC' goto genmakefiles rem ---------------------------------------------------------------------- :genmakefiles echo Generating makefiles if %COMPILER% == gcc set MAKECMD=gmake if %COMPILER% == cl set MAKECMD=nmake rem Pass on chosen settings to makefiles. echo # Start of settings from configure.bat >config.settings echo COMPILER=%COMPILER% >>config.settings if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings if (%noopt%) == (Y) echo NOOPT=1 >>config.settings if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix% >>config.settings if not "(%usercflags%)" == "()" echo USER_CFLAGS=%usercflags% >>config.settings if not "(%userldflags%)" == "()" echo USER_LDFLAGS=%userldflags% >>config.settings echo # End of settings from configure.bat >>config.settings echo. >>config.settings copy config.nt ..\src\config.h if not "(%usercflags%)" == "()" echo #define USER_CFLAGS " %usercflags%">>..\src\config.h if not "(%userldflags%)" == "()" echo #define USER_LDFLAGS " %userldflags%">>..\src\config.h copy paths.h ..\src\epaths.h rem gmake doesn't support "cd foo" in commands (except as part of a rem compound statement which command.com doesn't support), but nmake rem doesn't support the -C dir command line switch, so generate the rem necessary makefile fragment for targets that involve changing dir. rem if %MAKECMD% == nmake goto gen1 echo. > make-frag echo all-other-dirs: >> make-frag echo. $(MAKE) -C ../lib-src all >> make-frag echo. $(MAKE) -C ../src all >> make-frag echo. $(MAKE) -C ../lisp all >> make-frag echo. $(MAKE) -C ../leim all >> make-frag echo. >> make-frag echo clean-other-dirs: >> make-frag echo. $(MAKE) -C ../lib-src clean >> make-frag echo. $(MAKE) -C ../src clean >> make-frag echo. $(MAKE) -C ../lisp clean >> make-frag echo. $(MAKE) -C ../leim clean >> make-frag echo. >> make-frag echo install-other-dirs: >> make-frag echo. $(MAKE) -C ../lib-src install >> make-frag echo. $(MAKE) -C ../src install >> make-frag echo. $(MAKE) -C ../lisp install >> make-frag echo. $(MAKE) -C ../leim install >> make-frag echo. >> make-frag goto gen2 :gen1 echo. > make-frag echo all-other-dirs: >> make-frag echo. cd ..\lib-src >> make-frag echo. $(MAKE) all >> make-frag echo. cd ..\src >> make-frag echo. $(MAKE) all >> make-frag echo. cd ..\lisp >> make-frag echo. $(MAKE) all >> make-frag echo. cd ..\leim >> make-frag echo. $(MAKE) all >> make-frag echo. cd ..\nt >> make-frag echo. >> make-frag echo clean-other-dirs: >> make-frag echo. cd ..\lib-src >> make-frag echo. $(MAKE) clean >> make-frag echo. cd ..\src >> make-frag echo. $(MAKE) clean >> make-frag echo. cd ..\lisp >> make-frag echo. $(MAKE) clean >> make-frag echo. cd ..\leim >> make-frag echo. $(MAKE) clean >> make-frag echo. cd ..\nt >> make-frag echo. >> make-frag echo install-other-dirs: >> make-frag echo. cd ..\lib-src >> make-frag echo. $(MAKE) install >> make-frag echo. cd ..\src >> make-frag echo. $(MAKE) install >> make-frag echo. cd ..\lisp >> make-frag echo. $(MAKE) install >> make-frag echo. cd ..\leim >> make-frag echo. $(MAKE) install >> make-frag echo. cd ..\nt >> make-frag echo. >> make-frag :gen2 copy /b config.settings+%MAKECMD%.defs+make-frag+..\nt\makefile.w32-in ..\nt\makefile del make-frag copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile if not exist ..\lisp\Makefile.unix rename ..\lisp\Makefile Makefile.unix if exist ..\lisp\makefile del /f ..\lisp\makefile copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile rem Use the default (no-op) Makefile.in if the nt version is not present. if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile del config.settings echo. echo Emacs successfully configured. echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install. goto end :SmallEnv echo Your environment size is too small. Please enlarge it and rerun configure. echo For example, type "command.com /e:2048" to have 2048 bytes available. set $foo$= :end set prefix= set nodebug= set noopt= set nocygwin= set COMPILER= set MAKECMD= set usercflags= set userldflags=