summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2011-02-19 17:57:35 +0200
committerEli Zaretskii <eliz@gnu.org>2011-02-19 17:57:35 +0200
commit9d9d12cdf35151946d2429845a72149c5a7309e4 (patch)
tree9c8d43067efc1129d682005ad923e014b882c98f
parent56e96bed349771df1df56546450a21afc75c00d3 (diff)
downloademacs-9d9d12cdf35151946d2429845a72149c5a7309e4.tar.gz
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.
-rw-r--r--ChangeLog4
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/admin.el4
-rw-r--r--config.bat19
-rw-r--r--msdos/ChangeLog27
-rw-r--r--msdos/mainmake.v226
-rw-r--r--msdos/sed1v2.inp6
-rw-r--r--msdos/sed2v2.inp16
-rw-r--r--src/ChangeLog4
-rw-r--r--src/s/msdos.h9
10 files changed, 103 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index c574311d45c..701150d0cab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-02-19 Eli Zaretskii <eliz@gnu.org>
+
+ * config.bat: Configure in `lib'.
+
2011-02-18 Paul Eggert <eggert@cs.ucla.edu>
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 <eliz@gnu.org>
+
+ * admin.el (set-version): Add msdos/sed2v2.inp.
+
2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
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 <eliz@gnu.org>
+
+ * 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 <rgm@gnu.org>
* 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 <eliz@gnu.org>
+
+ * s/msdos.h (strtold): Define to _strtold.
+
2011-02-18 Stefan Monnier <monnier@iro.umontreal.ca>
* 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=<CM>:cl=<CL>:ce=<CE>:\