From ccdaf04cfdaa42fb85d456274405cce32ee9f5d4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 30 Apr 2016 13:45:33 +0300 Subject: 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. --- config.bat | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'config.bat') 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.h3 -mv config.h3 config.h2 +sed -e "/#define EMACS_CONFIG_FEATURES/s/^.*$/#define EMACS_CONFIG_FEATURES \"LIBXML2\"/" 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 rm -f makefile.tmp @@ -227,6 +227,10 @@ rem ---------------------------------------------------------------------- Echo Configuring the library source directory... cd lib-src sed -f ../msdos/sed3v2.inp 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 if "%X11%" == "" goto libsrc2a mv Makefile makefile.tmp sed -f ../msdos/sed3x.inp 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= -- cgit v1.2.3