From f466241d472a4db93178989b377228a82e86f0fb Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 31 Aug 2001 10:31:22 +0000 Subject: [PATCH] Convert EOLs to DOS format. --- admin/nt/makedist.bat | 244 ++++++++--------- nt/ChangeLog | 9 + nt/configure.bat | 596 +++++++++++++++++++++--------------------- 3 files changed, 429 insertions(+), 420 deletions(-) diff --git a/admin/nt/makedist.bat b/admin/nt/makedist.bat index e756d16467e..f069a572f47 100755 --- a/admin/nt/makedist.bat +++ b/admin/nt/makedist.bat @@ -1,122 +1,122 @@ -@echo off - -set TAR=wtar - -rem Make a copy of current Emacs source -if (%3) == () goto usage -if not (%4) == () goto %4 -if not (%4) == (src) goto :lisp - -:src - -echo Create full source distribution, excluding leim -%TAR% --exclude leim --exclude _marker --exclude DOC --exclude DOC-X --exclude TAGS --exclude bin --exclude obj --exclude obj-spd --exclude oo --exclude oo-spd --exclude *~ --exclude *.rej -cvf - emacs-%1 | gzip -9 > %2-src.tar.gz -if not (%4) == () goto end - -:lisp -echo Create limited elisp source distribution -%TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz -if not (%4) == () goto end - -:bin - -set eld=emacs-%1/lisp - -rem Keep this list in sync with the DONTCOMPILE list in lisp/Makefile.in - -set elfiles=%eld%/cus-load.el %eld%/cus-start.el %eld%/emacs-lisp/cl-specs.el %eld%/eshell/esh-maint.el %eld%/eshell/esh-groups.el %eld%/finder-inf.el %eld%/forms-d2.el %eld%/forms-pass.el %eld%/generic-x.el %eld%/international/latin-1.el %eld%/international/latin-2.el %eld%/international/latin-3.el %eld%/international/latin-4.el %eld%/international/latin-5.el %eld%/international/latin-8.el %eld%/international/latin-9.el %eld%/international/mule-conf.el %eld%/loaddefs.el %eld%/loadup.el %eld%/mail/blessmail.el %eld%/patcomp.el %eld%/paths.el %eld%/play/bruce.el %eld%/subdirs.el %eld%/term/internal.el %eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bobcat.el %eld%/term/iris-ansi.el %eld%/term/keyswap.el %eld%/term/linux.el %eld%/term/lk201.el %eld%/term/news.el %eld%/term/vt102.el %eld%/term/vt125.el %eld%/term/vt200.el %eld%/term/vt201.el %eld%/term/vt220.el %eld%/term/vt240.el %eld%/term/vt300.el %eld%/term/vt320.el %eld%/term/vt400.el %eld%/term/vt420.el %eld%/term/wyse50.el %eld%/term/xterm.el %eld%/version.el - -rem set term_elfiles=%eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bg-mouse.el %eld%/term/bobcat.el %eld%/term/internal.el %eld%/term/iris-ansi.el %eld%/term/keyswap.el %eld%/term/linux.el %eld%/term/lk201.el %eld%/term/news.el %eld%/term/pc-win.el %eld%/term/sun-mouse.el %eld%/term/sun.el %eld%/term/sup-mouse.el %eld%/term/tvi970.el %eld%/term/vt100.el %eld%/term/vt102.el %eld%/term/vt125.el %eld%/term/vt200.el %eld%/term/vt201.el %eld%/term/vt220.el %eld%/term/vt240.el %eld%/term/vt300.el %eld%/term/vt320.el %eld%/term/vt400.el %eld%/term/vt420.el %eld%/term/w32-win.el %eld%/term/wyse50.el %eld%/term/x-win.el %eld%/term/xterm.el - -rem set elcfiles=%eld%/*.elc %eld%/emacs-lisp/*.elc %eld%/emulation/*.elc %eld%/gnus/*.elc %eld%/international/*.elc %eld%/language/*.elc %eld%/mail/*.elc %eld%/play/*.elc %eld%/progmodes/*.elc %eld%/term/*.elc %eld%/textmodes/*.elc - -set fns_el= -for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f - -echo Create bin distribution -copy %3\README.W32 emacs-%1\README.W32 - -rem %TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb -rem --exclude *.opt --exclude *.el --exclude *~ -cvf - emacs-%1/BUGS -rem emacs-%1/GETTING.GNU.SOFTWARE emacs-%1/README emacs-%1/README.W32 -rem emacs-%1/bin %fns_el% emacs-%1/etc emacs-%1/info emacs-%1/lisp %elfiles% -rem %term_elfiles% emacs-%1/lock emacs-%1/site-lisp -cvf - | gzip -9 > %2-bin-i386.tar.gz - -del #files# -for %%f in (emacs-%1/BUGS emacs-%1/GETTING.GNU.SOFTWARE emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files# -for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#files# -for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp %elfiles%) do echo %%f>>#files# -for %%f in (%eld%/term/*.el) do echo %eld%/term/%%f>>#files# -for %%f in (emacs-%1/lock emacs-%1/site-lisp emacs-%1/site-lisp/subdirs.el) do echo %%f>>#files# -%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *.el --exclude *~ -T #files# -cvf - | gzip -9 > %2-bin-i386.tar.gz -del emacs-%1\README.W32 -del #files# -if not (%4) == () goto end - -:fullbin - -echo Create full bin distribution -copy %3\README.W32 emacs-%1\README.W32 - -%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *~ -cvf - emacs-%1/BUGS emacs-%1/GETTING.GNU.SOFTWARE emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/lock emacs-%1/site-lisp | gzip -9 > %2-fullbin-i386.tar.gz -del emacs-%1\README.W32 -if not (%4) == () goto end - -:leim - -echo Create archive with precompiled leim files -%TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz -if not (%4) == () goto end - -:undumped - -echo Create archive with extra files needed for redumping emacs -copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32 -copy %3\dump.bat emacs-%1\bin -if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin -if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin -%TAR% -cvf - emacs-%1/README-UNDUMP.W32 emacs-%1/bin/dump.bat emacs-%1/bin/temacs.exe | gzip -9 > %2-undumped-i386.tar.gz -del emacs-%1\bin\temacs.exe -del emacs-%1\bin\dump.bat -del emacs-%1\README-UNDUMP.W32 -if not (%4) == () goto end - -:barebin - -echo Create archive with just the basic binaries and generated files -echo (the user needs to unpack the full source distribution for -echo everything else) -copy %3\README.W32 emacs-%1\README.W32 -%TAR% -cvf - emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC emacs-%1/etc/DOC-X | gzip -9 > %2-barebin-i386.tar.gz -del emacs-%1\README.W32 -if not (%4) == () goto end - -goto end - -rem Only do this if explicitly requested -:zipfiles - -echo Create zip files for bin and lisp archives -mkdir distrib -cd distrib -gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf - -zip -rp9 em%5_bin %2 -rm -rf %2 -zipsplit -n 1400000 -b .. em%5_bin.zip -del em%5_bin.zip -gunzip -c ..\%2-lisp.tar.gz | %TAR% xf - -zip -rp9 em%5_lis %2 -rm -rf %2 -zipsplit -n 1400000 -b .. em%5_lis.zip -del em%5_lis.zip -cd .. - -goto end - -:usage -echo Generate source and binary distributions of emacs. -echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin] -echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles) -echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version -echo (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206) -:end +@echo off + +set TAR=wtar + +rem Make a copy of current Emacs source +if (%3) == () goto usage +if not (%4) == () goto %4 +if not (%4) == (src) goto :lisp + +:src + +echo Create full source distribution, excluding leim +%TAR% --exclude leim --exclude _marker --exclude DOC --exclude DOC-X --exclude TAGS --exclude bin --exclude obj --exclude obj-spd --exclude oo --exclude oo-spd --exclude *~ --exclude *.rej -cvf - emacs-%1 | gzip -9 > %2-src.tar.gz +if not (%4) == () goto end + +:lisp +echo Create limited elisp source distribution +%TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz +if not (%4) == () goto end + +:bin + +set eld=emacs-%1/lisp + +rem Keep this list in sync with the DONTCOMPILE list in lisp/Makefile.in + +set elfiles=%eld%/cus-load.el %eld%/cus-start.el %eld%/emacs-lisp/cl-specs.el %eld%/eshell/esh-maint.el %eld%/eshell/esh-groups.el %eld%/finder-inf.el %eld%/forms-d2.el %eld%/forms-pass.el %eld%/generic-x.el %eld%/international/latin-1.el %eld%/international/latin-2.el %eld%/international/latin-3.el %eld%/international/latin-4.el %eld%/international/latin-5.el %eld%/international/latin-8.el %eld%/international/latin-9.el %eld%/international/mule-conf.el %eld%/loaddefs.el %eld%/loadup.el %eld%/mail/blessmail.el %eld%/patcomp.el %eld%/paths.el %eld%/play/bruce.el %eld%/subdirs.el %eld%/term/internal.el %eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bobcat.el %eld%/term/iris-ansi.el %eld%/term/keyswap.el %eld%/term/linux.el %eld%/term/lk201.el %eld%/term/news.el %eld%/term/vt102.el %eld%/term/vt125.el %eld%/term/vt200.el %eld%/term/vt201.el %eld%/term/vt220.el %eld%/term/vt240.el %eld%/term/vt300.el %eld%/term/vt320.el %eld%/term/vt400.el %eld%/term/vt420.el %eld%/term/wyse50.el %eld%/term/xterm.el %eld%/version.el + +rem set term_elfiles=%eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bg-mouse.el %eld%/term/bobcat.el %eld%/term/internal.el %eld%/term/iris-ansi.el %eld%/term/keyswap.el %eld%/term/linux.el %eld%/term/lk201.el %eld%/term/news.el %eld%/term/pc-win.el %eld%/term/sun-mouse.el %eld%/term/sun.el %eld%/term/sup-mouse.el %eld%/term/tvi970.el %eld%/term/vt100.el %eld%/term/vt102.el %eld%/term/vt125.el %eld%/term/vt200.el %eld%/term/vt201.el %eld%/term/vt220.el %eld%/term/vt240.el %eld%/term/vt300.el %eld%/term/vt320.el %eld%/term/vt400.el %eld%/term/vt420.el %eld%/term/w32-win.el %eld%/term/wyse50.el %eld%/term/x-win.el %eld%/term/xterm.el + +rem set elcfiles=%eld%/*.elc %eld%/emacs-lisp/*.elc %eld%/emulation/*.elc %eld%/gnus/*.elc %eld%/international/*.elc %eld%/language/*.elc %eld%/mail/*.elc %eld%/play/*.elc %eld%/progmodes/*.elc %eld%/term/*.elc %eld%/textmodes/*.elc + +set fns_el= +for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f + +echo Create bin distribution +copy %3\README.W32 emacs-%1\README.W32 + +rem %TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb +rem --exclude *.opt --exclude *.el --exclude *~ -cvf - emacs-%1/BUGS +rem emacs-%1/GETTING.GNU.SOFTWARE emacs-%1/README emacs-%1/README.W32 +rem emacs-%1/bin %fns_el% emacs-%1/etc emacs-%1/info emacs-%1/lisp %elfiles% +rem %term_elfiles% emacs-%1/lock emacs-%1/site-lisp -cvf - | gzip -9 > %2-bin-i386.tar.gz + +del #files# +for %%f in (emacs-%1/BUGS emacs-%1/GETTING.GNU.SOFTWARE emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files# +for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#files# +for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp %elfiles%) do echo %%f>>#files# +for %%f in (%eld%/term/*.el) do echo %eld%/term/%%f>>#files# +for %%f in (emacs-%1/lock emacs-%1/site-lisp emacs-%1/site-lisp/subdirs.el) do echo %%f>>#files# +%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *.el --exclude *~ -T #files# -cvf - | gzip -9 > %2-bin-i386.tar.gz +del emacs-%1\README.W32 +del #files# +if not (%4) == () goto end + +:fullbin + +echo Create full bin distribution +copy %3\README.W32 emacs-%1\README.W32 + +%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *~ -cvf - emacs-%1/BUGS emacs-%1/GETTING.GNU.SOFTWARE emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/lock emacs-%1/site-lisp | gzip -9 > %2-fullbin-i386.tar.gz +del emacs-%1\README.W32 +if not (%4) == () goto end + +:leim + +echo Create archive with precompiled leim files +%TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz +if not (%4) == () goto end + +:undumped + +echo Create archive with extra files needed for redumping emacs +copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32 +copy %3\dump.bat emacs-%1\bin +if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin +if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin +%TAR% -cvf - emacs-%1/README-UNDUMP.W32 emacs-%1/bin/dump.bat emacs-%1/bin/temacs.exe | gzip -9 > %2-undumped-i386.tar.gz +del emacs-%1\bin\temacs.exe +del emacs-%1\bin\dump.bat +del emacs-%1\README-UNDUMP.W32 +if not (%4) == () goto end + +:barebin + +echo Create archive with just the basic binaries and generated files +echo (the user needs to unpack the full source distribution for +echo everything else) +copy %3\README.W32 emacs-%1\README.W32 +%TAR% -cvf - emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC emacs-%1/etc/DOC-X | gzip -9 > %2-barebin-i386.tar.gz +del emacs-%1\README.W32 +if not (%4) == () goto end + +goto end + +rem Only do this if explicitly requested +:zipfiles + +echo Create zip files for bin and lisp archives +mkdir distrib +cd distrib +gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf - +zip -rp9 em%5_bin %2 +rm -rf %2 +zipsplit -n 1400000 -b .. em%5_bin.zip +del em%5_bin.zip +gunzip -c ..\%2-lisp.tar.gz | %TAR% xf - +zip -rp9 em%5_lis %2 +rm -rf %2 +zipsplit -n 1400000 -b .. em%5_lis.zip +del em%5_lis.zip +cd .. + +goto end + +:usage +echo Generate source and binary distributions of emacs. +echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin] +echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles) +echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version +echo (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206) +:end diff --git a/nt/ChangeLog b/nt/ChangeLog index fb722213d80..d3500a1f1d8 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,12 @@ +2001-08-31 Eli Zaretskii + + * subdirs.el: New file. + + * configure.bat: Copy subdirs.el to the site-lisp directory. + + * makefile.w32-in (install): Copy subdirs.el to the installation + directory. + 2001-06-20 Jason Rumney * runemacs.c (WinMain): Add quotes around command in case of spaces. diff --git a/nt/configure.bat b/nt/configure.bat index 308e3e314e2..4ee9b46a2b3 100755 --- a/nt/configure.bat +++ b/nt/configure.bat @@ -1,298 +1,298 @@ -@echo off -rem ---------------------------------------------------------------------- -rem Configuration script for MS Windows 95/98 and NT/2000 -rem Copyright (C) 1999-2001 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 -Rem WARNING -- COMMAND.COM on some systems only looks at the first -Rem 8 characters of a label. So do NOT be tempted to change -Rem chkapi* into something fancier like checkw32api -Rem You HAVE been warned! -if (%nocygwin%) == (Y) goto chkapi -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 chkapi -gcc -mno-cygwin -c junk.c -if exist junk.o set nocygwin=Y -rm -f junk.c junk.o - -:chkapi -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 -if (%nocygwin%) == (Y) goto chkapi1 -set cf=%usercflags% -goto chkapi2 -:chkapi1 -set cf=%usercflags% -mno-cygwin -:chkapi2 -echo on -gcc %cf% -c junk.c -echo off -set cf= -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 -rm -f junk.c junk.o -echo Using 'gcc' -goto genmakefiles - -:clOk -set COMPILER=cl -rm -f 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. -rem NB. Be very careful to not have a space before redirection symbols -rem except when there is a preceding digit, when a space is required. -rem -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 - -copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile -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.in Makefile.unix -if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile -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 - -if not exist ..\site-lisp\subdirs.el copy subdirs.el ..\site-lisp\subdirs.el - -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= +@echo off +rem ---------------------------------------------------------------------- +rem Configuration script for MS Windows 95/98 and NT/2000 +rem Copyright (C) 1999-2001 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 +Rem WARNING -- COMMAND.COM on some systems only looks at the first +Rem 8 characters of a label. So do NOT be tempted to change +Rem chkapi* into something fancier like checkw32api +Rem You HAVE been warned! +if (%nocygwin%) == (Y) goto chkapi +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 chkapi +gcc -mno-cygwin -c junk.c +if exist junk.o set nocygwin=Y +rm -f junk.c junk.o + +:chkapi +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 +if (%nocygwin%) == (Y) goto chkapi1 +set cf=%usercflags% +goto chkapi2 +:chkapi1 +set cf=%usercflags% -mno-cygwin +:chkapi2 +echo on +gcc %cf% -c junk.c +echo off +set cf= +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 +rm -f junk.c junk.o +echo Using 'gcc' +goto genmakefiles + +:clOk +set COMPILER=cl +rm -f 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. +rem NB. Be very careful to not have a space before redirection symbols +rem except when there is a preceding digit, when a space is required. +rem +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 + +copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile +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.in Makefile.unix +if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile +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 + +if not exist ..\site-lisp\subdirs.el copy subdirs.el ..\site-lisp\subdirs.el + +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= -- 2.39.2