From: Eli Zaretskii Date: Sat, 19 Feb 2011 15:57:35 +0000 (+0200) Subject: Initial version of fix for the MS-DOS build, not yet tested. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~802^2~7 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9d9d12cdf35151946d2429845a72149c5a7309e4;p=emacs.git Initial version of fix for the MS-DOS build, not yet tested. config.bat: Configure in `lib'. msdos/sedlibmk.inp: New file. msdos/sedlibcf.inp: New file. msdos/sed1v2.inp (NS_OBJC_OBJ): Edit to empty. (@true): Edit to "@rem". (move-if-change): Edit to "update". (echo): Edit to "djecho". (cd $(lib) && ...): Edit to "$(MAKE) -C ...". msdos/mainmake.v2 (version): Remove, no longer needed (config.in defines VERSION). (all): Add lib. (lib): New target and recipe. (lib-src): Depend on lib. (src): Depend on lib and lib-src. (clean, mostlyclean, distclean, maintainer-clean, extraclean) (bootstrap-clean): Recurse into lib. msdos/sed2v2.inp: Remove workaround for the "#if ! HAVE_MKTIME || BROKEN_MKTIME" stuff -- it's no longer in src/config.in. (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE_DECL_GETENV) (HAVE__BOOL): Edit to 1. (VERSION, inline, restrict): Edit for DJGPP. src/s/msdos.h (strtold): Define to _strtold. admin/admin.el (set-version): Add msdos/sed2v2.inp. --- diff --git a/ChangeLog b/ChangeLog index c574311d45c..701150d0cab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-02-19 Eli Zaretskii + + * config.bat: Configure in `lib'. + 2011-02-18 Paul Eggert Import IRIX 6.5 getloadavg fixes from gnulib. diff --git a/admin/ChangeLog b/admin/ChangeLog index 64d6de69d10..87ba151dc34 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,7 @@ +2011-02-19 Eli Zaretskii + + * admin.el (set-version): Add msdos/sed2v2.inp. + 2011-02-16 Paul Eggert Remove no-longer needed getloadavg symbols. diff --git a/admin/admin.el b/admin/admin.el index 9f87e9b2590..717bfee702d 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -77,6 +77,10 @@ Root must be the root of an Emacs source tree." (rx (and bol "#" (0+ blank) "define" (1+ blank) "VERSION" (1+ blank) (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "msdos/sed2v2.inp" version + (rx (and bol "/^#undef " (1+ not-newline) + "define VERSION" (1+ space) + (submatch (1+ (in "0-9.")))))) (set-version-in-file root "nt/makefile.w32-in" version (rx (and "VERSION" (0+ space) "=" (0+ space) (submatch (1+ (in "0-9.")))))) diff --git a/config.bat b/config.bat index f87bcd13a5d..730a33770e9 100644 --- a/config.bat +++ b/config.bat @@ -2,7 +2,8 @@ rem ---------------------------------------------------------------------- rem Configuration script for MSDOS rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003 -rem 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +rem 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +rem Inc. rem This file is part of GNU Emacs. @@ -273,6 +274,22 @@ 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 cd .. rem ---------------------------------------------------------------------- +Echo Configuring the lib directory... +If Exist c++defs.h update c++defs.h cxxdefs.h +cd lib +Rem Rename files like djtar on plain DOS filesystem would. +If Exist c++defs.h update c++defs.h cxxdefs.h +If Exist getopt.in.h update getopt.in.h getopt.in-h +If Exist stddef.in.h update stddef.in.h stddef.in-h +If Exist stdbool.in.h update stdbool.in.h stdbool.in-h +If Exist stdlib.in.h update stdlib.in.h stdlib.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 +sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp +sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile +rm -f makefile.tmp +cd .. +rem ---------------------------------------------------------------------- Echo Configuring the lisp directory... cd lisp If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el diff --git a/msdos/ChangeLog b/msdos/ChangeLog index b9b829c4554..9a98352ff23 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -1,3 +1,30 @@ +2011-02-19 Eli Zaretskii + + * sedlibmk.inp: New file. + + * sedlibcf.inp: New file. + + * sed1v2.inp (NS_OBJC_OBJ): Edit to empty. + (@true): Edit to "@rem". + (move-if-change): Edit to "update". + (echo): Edit to "djecho". + (cd $(lib) && ...): Edit to "$(MAKE) -C ...". + + * mainmake.v2 (version): Remove, no longer needed (config.in + defines VERSION). + (all): Add lib. + (lib): New target and recipe. + (lib-src): Depend on lib. + (src): Depend on lib and lib-src. + (clean, mostlyclean, distclean, maintainer-clean, extraclean) + (bootstrap-clean): Recurse into lib. + + * sed2v2.inp: Remove workaround for the "#if ! HAVE_MKTIME || + BROKEN_MKTIME" stuff -- it's no longer in src/config.in. + (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE_DECL_GETENV) + (HAVE__BOOL): Edit to 1. + (VERSION, inline, restrict): Edit for DJGPP. + 2011-01-08 Glenn Morris * sedleim.inp (RUN-EMACS): -batch implies --no-init-file. diff --git a/msdos/mainmake.v2 b/msdos/mainmake.v2 index 2e389b15bc9..0e77a68940a 100644 --- a/msdos/mainmake.v2 +++ b/msdos/mainmake.v2 @@ -63,9 +63,6 @@ MAKESHELL=/xyzzy/command # Generate a full pathname of the top-level installation directory top_srcdir := $(subst \,/,$(shell cd)) -# Find out which version of Emacs this is. -version := ${shell sed -n -e '/^static const char emacs_version/s/^[^"]*\("[^"]*"\).*/\1/p' src/emacs.c} - # Q: Do we need to bootstrap? # A: Only if we find admin/admin.el, i.e. we are building out of # a VCS-checkout (not a release) and src/b-emacs.exe does not exist. @@ -82,9 +79,14 @@ endif # compiled lisp files are part of the distribution. (If we are # bootstrapping, the src target will run Make in `lisp' as well.) # leim is not included because it is part of the src target. -all: lib-src src emacs misc lispref lispintro +all: lib lib-src src emacs misc lispref lispintro + +lib: FRC + cd lib + $(MAKE) top_srcdir=${top_srcdir} version=${version} + cd .. -lib-src: FRC +lib-src: lib FRC cd lib-src $(MAKE) top_srcdir=${top_srcdir} version=${version} cd .. @@ -98,7 +100,7 @@ lib-src: FRC # file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling # all preloaded elisp files, and only then dump the actual src/emacs, which # is not wrong, but is overkill in 99.99% of the cases. -src: FRC +src: lib lib-src FRC cd src $(MAKE) top_srcdir=${top_srcdir} BOOTSTRAPEMACS="${boot}" djecho -s '/-geometry/s,^.*,set environment HOME $(top_srcdir),' \ @@ -168,6 +170,9 @@ check: @echo "We don't have any tests for GNU Emacs yet." clean mostlyclean: + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. @@ -199,6 +204,9 @@ distclean maintainer-clean: FRC $(MAKE) $(MFLAGS) $@ if exist bootlisp rm -f bootlisp cd .. + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. @@ -228,6 +236,9 @@ extraclean: cd src $(MAKE) $(MFLAGS) $@ cd .. + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. @@ -257,6 +268,9 @@ extraclean: .PHONY: bootstrap bootstrap-clean: FRC + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd src $(MAKE) $(MFLAGS) $@ cd .. diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index 1cfd4f803c2..49e45b5e0d8 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp @@ -98,6 +98,7 @@ s/\.h\.in/.h-in/ /^ns_appbindir *=/s/@ns_appbindir@// /^ns_appsrc *=/s/@ns_appsrc@// /^NS_OBJ *=/s/@NS_OBJ@// +/^NS_OBJC_OBJ *=/s/@NS_OBJC_OBJ@// /^NS_SUPPORT *=/s/@NS_SUPPORT@// /^GNU_OBJC_CFLAGS*=/s/@GNU_OBJC_CFLAGS@// /^LIBRESOLV *=/s/@LIBRESOLV@// @@ -145,6 +146,11 @@ s/\.h\.in/.h-in/ stubedit emacs.exe minstack=2048k s/ || exit 1\; \\$// s/ || true\; \\$// +s/ @true *$/ @rem/ +s/^ [^ ]*move-if-change /update / +/^ echo[ ][ ]*timestamp/s/echo /djecho / +/^ cd \$(lib) && \$(MAKE)/c\ + $(MAKE) $(MFLAGS) -C $(lib) libgnu.a /^RUN_TEMACS *=/s|`/bin/pwd`|.| /^ *@\$(MKDEPDIR) *$/d /^ mv \.\/\.gdbinit/d diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 98e398053e3..d885bbc97e2 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -34,6 +34,8 @@ /^#undef HAVE_FREXP *$/s/^.*$/#define HAVE_FREXP 1/ /^#undef HAVE_FMOD *$/s/^.*$/#define HAVE_FMOD 1/ /^#undef HAVE_RINT *$/s/^.*$/#define HAVE_RINT 1/ +/^#undef HAVE_ATTRIBUTE_ALIGNED *$/s/^.*$/#define HAVE_ATTRIBUTE_ALIGNED 1/ +/^#undef HAVE_C99_STRTOLD *$/s/^.*$/#define HAVE_C99_STRTOLD 1/ /^#undef HAVE_CBRT *$/s/^.*$/#define HAVE_CBRT 1/ /^#undef HAVE_DIFFTIME *$/s/^.*$/#define HAVE_DIFFTIME 1/ /^#undef HAVE_FPATHCONF *$/s/^.*$/#define HAVE_FPATHCONF 1/ @@ -56,8 +58,13 @@ /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ +/^#undef VERSION/s/^.*$/#define VERSION "24.0.50"/ +/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ /^#undef HAVE_DIRENT_H/s/^.*$/#define HAVE_DIRENT_H 1/ +/^#undef HAVE__BOOL/s/^.*$/#define HAVE__BOOL 1/ +/^#undef inline/s/^.*$/#define inline __inline__/ +/^#undef restrict/s/^.*$/#define restrict __restrict/ /^#undef GNU_MALLOC *$/s/^.*$/#define GNU_MALLOC 1/ /^#undef REL_ALLOC *$/s/^.*$/#define REL_ALLOC 1/ @@ -69,15 +76,6 @@ s!^#undef config_opsysfile *$!#define config_opsysfile "s/msdos.h"! s!^#undef config_machfile *$!#define config_machfile "m/intel386.h"! s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/ s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/ -# ------------------------------------------------------------ -# Without this ifndef, gcc -E -traditional barfs with GCC 3.0 -# on the line which says if ! HAVE_MKTIME... -# ------------------------------------------------------------ -/^#if ! HAVE_MKTIME || BROKEN_MKTIME/i\ -#ifndef __DJGPP__ -/^#define mktime emacs_mktime/a\ -#endif - /^#undef HAVE_STDINT_H/c\ #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\ #define HAVE_STDINT_H 1\ diff --git a/src/ChangeLog b/src/ChangeLog index dea7b2547fd..31e778043f8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-02-19 Eli Zaretskii + + * s/msdos.h (strtold): Define to _strtold. + 2011-02-18 Stefan Monnier * process.c (Fstart_process, Fmake_serial_process) diff --git a/src/s/msdos.h b/src/s/msdos.h index a1d23521a0a..8debd28dccb 100644 --- a/src/s/msdos.h +++ b/src/s/msdos.h @@ -73,6 +73,15 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ #define HAVE_INVERSE_HYPERBOLIC #define FLOAT_CHECK_DOMAIN +/* Start of gnulib-related stuff */ + +/* lib/ftoastr.c wants strtold, but DJGPP only has _strtold. DJGPP > + 2.03 has it, but it also has _strtold as a stub that jumps to + strtold, so use _strtold in all versions. */ +#define strtold _strtold + +/* End of gnulib-related stuff. */ + /* When $TERM is "internal" then this is substituted: */ #define INTERNAL_TERMINAL "pc|bios|IBM PC with color display:\ :co#80:li#25:Co#16:pa#256:km:ms:cm=:cl=:ce=:\