summaryrefslogtreecommitdiff
path: root/config.bat
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2016-04-30 13:45:33 +0300
committerEli Zaretskii <eliz@gnu.org>2016-04-30 13:45:33 +0300
commitccdaf04cfdaa42fb85d456274405cce32ee9f5d4 (patch)
tree631c59e4dad1db81cca00edeaa721ae8c0e522e5 /config.bat
parentffe701cb07cfb3584c4e4894976f0c9487d02c59 (diff)
downloademacs-ccdaf04cfdaa42fb85d456274405cce32ee9f5d4.tar.gz
Fix the MSDOS build
* config.bat: * msdos/sedlisp.inp: * msdos/sedlibmk.inp: * msdos/sedleim.inp: * msdos/sedadmin.inp: * msdos/sed6.inp: * msdos/sed3v2.inp: * msdos/sed2v2.inp: * msdos/sed1v2.inp: Adapt to Emacs 25. * src/process.c (remove_slash_colon): Move out of "#ifdef subprocesses" block, as it its called unconditionally. Move ADD_SUBFEATURE calls into "#ifdef subprocesses" block, as they reference variables only defined in that block. * src/msdos.h: Provide prototypes for IT_set_frame_parameters, faccessat, msdos_fatal_signal, syms_of_msdos, pthread_sigmask, dos_keysns, dos_keyread, run_msdos_command, and syms_of_win16select, to avoid compiler warnings. * src/msdos.c (SYS_ENVIRON): Define to either '_environ' or 'environ', depending on the DJGPP version. Remove declarations of externally-visible Lisp objects, like Qbackground_color and Qreverse. (run_msdos_command): First argument is not signed, not unsigned. Use SYS_ENVIRON. (sys_select): Use 'timespec_cmp' instead of 'timespec_sign', as the latter doesn't work when 'time_t' is an unsigned data type. This caused idle timers to behave incorrectly: they only fired after a keyboard input event. * src/frame.c (adjust_frame_size) [MSDOS]: Account for FRAME_TOP_MARGIN that isn't counted in the frame's number of lines, but dos_set_window_size needs it to be added. * src/lread.c (INFINITY, NAN) [DJGPP < 2.05]: Provide definitions. * src/fns.c (sort_vector_copy) [__GNUC__ < 4]: Provide a prototype that works around compilation errors with older GCC versions. * src/w16select.c: Don't declare QCLIPBOARD and QPRIMARY as Lisp Objects. * src/filelock.c [MSDOS]: Ifdef away most of the code. Provide no-op implementations for 'lock_file' and 'unlock_file'. (Ffile_locked_p) [MSDOS]: Always return nil. This avoids multiple ifdefs in all users of filelock.c functionality. * src/conf_post.h (EOVERFLOW, SIZE_MAX) [DJGPP < 2.04]: Define. * src/emacs.c [MSDOS]: Include dosfns.h, to avoid compiler warnings. * src/dosfns.h: Provide prototypes for dos_cleanup, syms_of_dosfns, and init_dosfns. * src/deps.mk (atimer.o): Depend on msdos.h. (emacs.o): Depend on dosfns.h. * src/atimer.c [MSDOS]: Include msdos.h, to avoid compiler warnings. * lisp/window.el (window--adjust-process-windows): Skip the body if 'process-list' is not available. This avoids failure to start up on MS-DOS. * lisp/vc/diff.el (diff-no-select): Test 'make-process', not 'start-process', as the latter is now available on all platforms. * lisp/textmodes/ispell.el (ispell-async-processp): Replace 'start-process' with 'make-process' in a comment. * lisp/term/internal.el (IT-unicode-translations): Modify and add a few translations to display Info files with Unicode markup. Fix an ancient off-by-one mismatch error with Unicode codepoints. * lisp/progmodes/compile.el (compilation-start): Test 'make-process', not 'start-process', as the latter is now available on all platforms. * lisp/man.el (Man-build-man-command, Man-getpage-in-background): Test 'make-process', not 'start-process', as the latter is now available on all platforms. * lisp/international/mule-cmds.el (set-coding-system-map): Test 'make-process', not 'start-process', as the latter is now available on all platforms. * lisp/eshell/esh-cmd.el (eshell-do-pipelines-synchronously): Doc fix. (eshell-execute-pipeline): Test 'make-process', not 'start-process', as the latter is now available on all platforms.
Diffstat (limited to 'config.bat')
-rw-r--r--config.bat27
1 files changed, 23 insertions, 4 deletions
diff --git a/config.bat b/config.bat
index 04fce0f2988..a5bea7135ae 100644
--- a/config.bat
+++ b/config.bat
@@ -174,7 +174,7 @@ junk
If ErrorLevel 1 Goto xmlDone
Echo Configuring with libxml2 ...
sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" <config.h2 >config.h3
-mv config.h3 config.h2
+sed -e "/#define EMACS_CONFIG_FEATURES/s/^.*$/#define EMACS_CONFIG_FEATURES \"LIBXML2\"/" <config.h3 >config.h2
set libxml=1
:xmlDone
rm -f junk.c junk junk.exe
@@ -194,7 +194,7 @@ if exist dir.h ren dir.h vmsdir.h
rem Create "makefile" from "makefile.in".
rm -f Makefile makefile.tmp
-copy Makefile.in+lisp.mk+deps.mk makefile.tmp
+copy Makefile.in+deps.mk makefile.tmp
sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile
rm -f makefile.tmp
@@ -227,6 +227,10 @@ rem ----------------------------------------------------------------------
Echo Configuring the library source directory...
cd lib-src
sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile
+mv Makefile makefile.tmp
+sed -n -e "/^AC_INIT/s/[^,]*, \([^,]*\).*/@set emver=\1/p" ../configure.ac > emver.bat
+call emver.bat
+sed -e "s/@version@/%emver%/g" <makefile.tmp >Makefile
if "%X11%" == "" goto libsrc2a
mv Makefile makefile.tmp
sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile
@@ -252,16 +256,23 @@ cd ..
rem ----------------------------------------------------------------------
Echo Configuring the doc directory, expect one "File not found" message...
cd doc
+Rem Rename files like djtar on plain DOS filesystem would.
+If Exist emacs\emacsver.texi.in update emacs/emacsver.texi.in emacs/emacsver.in
+If Exist man\emacs.1.in update man/emacs.1.in man/emacs.in
+If Exist ..\etc\refcards\emacsver.tex.in update ../etc/refcards/emacsver.tex.in ../etc/refcards/emacsver.in
Rem The two variants for lispintro below is for when the shell
Rem supports long file names but DJGPP does not
-for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile
+for %%d in (emacs lispref lispintro lispintr misc) do sed -e "s/@version@/%emver%/g" -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile
+Rem produce emacs.1 from emacs.in
+If Exist man\emacs.1 goto manOk
+sed -e "s/@version@/%emver%/g" -e "s/@PACKAGE_BUGREPORT@/bug-gnu-emacs@gnu.org/g" < man\emacs.in > man\emacs.1
+:manOk
cd ..
rem ----------------------------------------------------------------------
Echo Configuring the lib directory...
If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h
cd lib
Rem Rename files like djtar on plain DOS filesystem would.
-If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h
If Exist alloca.in.h update alloca.in.h alloca.in-h
If Exist byteswap.in.h update byteswap.in.h byteswap.in-h
If Exist dirent.in.h update dirent.in.h dirent.in-h
@@ -286,6 +297,7 @@ If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
If Exist sys_time.in.h update sys_time.in.h sys_time.in-h
If Exist time.in.h update time.in.h time.in-h
If Exist unistd.in.h update unistd.in.h unistd.in-h
+Rem Only repository has the msdos/autogen directory
If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
If Exist ..\msdos\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < ..\msdos\autogen\Makefile.in > makefile.tmp
sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile
@@ -311,6 +323,12 @@ If Not Exist admin\unidata goto noadmin
Echo Configuring the admin/unidata directory...
cd admin\unidata
sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
+Echo Configuring the admin/charsets directory...
+cd ..\charsets
+sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
+Echo Configuring the admin/grammars directory...
+cd ..\grammars
+sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
cd ..\..
:noadmin
rem ----------------------------------------------------------------------
@@ -345,3 +363,4 @@ set nodebug=
set djgpp_ver=
set sys_malloc=
set libxml=
+set emver=