Update to a new version of automake and gettext.

Invent a new macro HAVE_DOS_PATHS and change various instances of:
  #if defined(WINDOWS) || defined(__MSDOS__)
to use the new macro instead.  This should help make the OS/2 port
cleaner, as well.
Invent a cvs-clean maintainer target that tries to get the workspace
back to the state it was in after a CVS checkout.
New language.
This commit is contained in:
Paul Smith 2002-08-10 01:27:16 +00:00
parent ee3a4f9dd6
commit 299c72e6ed
13 changed files with 75 additions and 63 deletions

View File

@ -24,7 +24,7 @@ Building From CVS
----------------- -----------------
To build GNU make from CVS, you will need Autoconf 2.53 (or better), To build GNU make from CVS, you will need Autoconf 2.53 (or better),
Automake 1.6.1 (or better), and Gettext 0.11.3-pre2 (or better), and any Automake 1.6.3 (or better), and Gettext 0.11.5 (or better), and any
tools that those utilities require (GNU m4, Perl, etc.). You will also tools that those utilities require (GNU m4, Perl, etc.). You will also
need a copy of wget. need a copy of wget.
@ -125,9 +125,8 @@ foolhardy), here is a canned sequence of commands to build a GNU make
distribution package from a virgin CVS source checkout (assuming all the distribution package from a virgin CVS source checkout (assuming all the
prerequisites are available of course). prerequisites are available of course).
This list is eminently suitable for a quick swipe o' the old mouse and a This list is eminently suitable for a quick swipe o' the mouse and a
swift click o' mouse-2 into an xterm. I even grudgingly removed my use swift click o' mouse-2 into an xterm. Go for it!
of "advanced shell features" like {}. Go for it!
autopoint autopoint

View File

@ -357,6 +357,9 @@
/* Build host information. */ /* Build host information. */
#define MAKE_HOST "Windows32" #define MAKE_HOST "Windows32"
/* Grok DOS paths (drive specs and backslash path element separators) */
#define HAVE_DOS_PATHS
/* /*
* Refer to README.W32 for info on the following settings * Refer to README.W32 for info on the following settings
*/ */

View File

@ -89,3 +89,6 @@
/* Build host information. */ /* Build host information. */
#define MAKE_HOST "i386-pc-msdosdjgpp" #define MAKE_HOST "i386-pc-msdosdjgpp"
/* Grok DOS paths (drive specs and backslash path element separators) */
#define HAVE_DOS_PATHS

18
dir.c
View File

@ -744,7 +744,7 @@ file_exists_p (name)
return dir_file_exists_p ("[]", name); return dir_file_exists_p ("[]", name);
#else /* !VMS */ #else /* !VMS */
dirend = strrchr (name, '/'); dirend = strrchr (name, '/');
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* Forward and backslashes might be mixed. We need the rightmost one. */ /* Forward and backslashes might be mixed. We need the rightmost one. */
{ {
char *bslash = strrchr(name, '\\'); char *bslash = strrchr(name, '\\');
@ -754,7 +754,7 @@ file_exists_p (name)
if (!dirend && name[0] && name[1] == ':') if (!dirend && name[0] && name[1] == ':')
dirend = name + 1; dirend = name + 1;
} }
#endif /* WINDOWS32 || __MSDOS__ */ #endif /* HAVE_DOS_PATHS */
if (dirend == 0) if (dirend == 0)
#ifndef _AMIGA #ifndef _AMIGA
return dir_file_exists_p (".", name); return dir_file_exists_p (".", name);
@ -768,7 +768,7 @@ file_exists_p (name)
dirname = "/"; dirname = "/";
else else
{ {
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* d:/ and d: are *very* different... */ /* d:/ and d: are *very* different... */
if (dirend < name + 3 && name[1] == ':' && if (dirend < name + 3 && name[1] == ':' &&
(*dirend == '/' || *dirend == '\\' || *dirend == ':')) (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
@ -803,7 +803,7 @@ file_impossible (filename)
dir = find_directory ("[]"); dir = find_directory ("[]");
#else #else
dirend = strrchr (p, '/'); dirend = strrchr (p, '/');
# if defined (WINDOWS32) || defined (__MSDOS__) # ifdef HAVE_DOS_PATHS
/* Forward and backslashes might be mixed. We need the rightmost one. */ /* Forward and backslashes might be mixed. We need the rightmost one. */
{ {
char *bslash = strrchr(p, '\\'); char *bslash = strrchr(p, '\\');
@ -813,7 +813,7 @@ file_impossible (filename)
if (!dirend && p[0] && p[1] == ':') if (!dirend && p[0] && p[1] == ':')
dirend = p + 1; dirend = p + 1;
} }
# endif /* WINDOWS32 or __MSDOS__ */ # endif /* HAVE_DOS_PATHS */
if (dirend == 0) if (dirend == 0)
# ifdef _AMIGA # ifdef _AMIGA
dir = find_directory (""); dir = find_directory ("");
@ -829,7 +829,7 @@ file_impossible (filename)
dirname = "/"; dirname = "/";
else else
{ {
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* d:/ and d: are *very* different... */ /* d:/ and d: are *very* different... */
if (dirend < p + 3 && p[1] == ':' && if (dirend < p + 3 && p[1] == ':' &&
(*dirend == '/' || *dirend == '\\' || *dirend == ':')) (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
@ -885,7 +885,7 @@ file_impossible_p (filename)
dir = find_directory ("[]")->contents; dir = find_directory ("[]")->contents;
#else #else
dirend = strrchr (filename, '/'); dirend = strrchr (filename, '/');
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* Forward and backslashes might be mixed. We need the rightmost one. */ /* Forward and backslashes might be mixed. We need the rightmost one. */
{ {
char *bslash = strrchr(filename, '\\'); char *bslash = strrchr(filename, '\\');
@ -895,7 +895,7 @@ file_impossible_p (filename)
if (!dirend && filename[0] && filename[1] == ':') if (!dirend && filename[0] && filename[1] == ':')
dirend = filename + 1; dirend = filename + 1;
} }
#endif /* WINDOWS32 || __MSDOS__ */ #endif /* HAVE_DOS_PATHS */
if (dirend == 0) if (dirend == 0)
#ifdef _AMIGA #ifdef _AMIGA
dir = find_directory ("")->contents; dir = find_directory ("")->contents;
@ -911,7 +911,7 @@ file_impossible_p (filename)
dirname = "/"; dirname = "/";
else else
{ {
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* d:/ and d: are *very* different... */ /* d:/ and d: are *very* different... */
if (dirend < filename + 3 && filename[1] == ':' && if (dirend < filename + 3 && filename[1] == ':' &&
(*dirend == '/' || *dirend == '\\' || *dirend == ':')) (*dirend == '/' || *dirend == '\\' || *dirend == ':'))

View File

@ -499,13 +499,13 @@ func_origin (o, argv, funcname)
} }
#ifdef VMS #ifdef VMS
#define IS_PATHSEP(c) ((c) == ']') # define IS_PATHSEP(c) ((c) == ']')
#else #else
#if defined(__MSDOS__) || defined(WINDOWS32) # ifdef HAVE_DOS_PATHS
#define IS_PATHSEP(c) ((c) == '/' || (c) == '\\') # define IS_PATHSEP(c) ((c) == '/' || (c) == '\\')
#else # else
#define IS_PATHSEP(c) ((c) == '/') # define IS_PATHSEP(c) ((c) == '/')
#endif # endif
#endif #endif
@ -543,7 +543,7 @@ func_notdir_suffix (o, argv, funcname)
continue; continue;
o = variable_buffer_output (o, p, len - (p - p2)); o = variable_buffer_output (o, p, len - (p - p2));
} }
#if defined(WINDOWS32) || defined(__MSDOS__) #ifdef HAVE_DOS_PATHS
/* Handle the case of "d:foo/bar". */ /* Handle the case of "d:foo/bar". */
else if (streq (funcname, "notdir") && p2[0] && p2[1] == ':') else if (streq (funcname, "notdir") && p2[0] && p2[1] == ':')
{ {
@ -599,7 +599,7 @@ func_basename_dir (o, argv, funcname)
o = variable_buffer_output (o, p2, ++p - p2); o = variable_buffer_output (o, p2, ++p - p2);
else if (p >= p2 && (*p == '.')) else if (p >= p2 && (*p == '.'))
o = variable_buffer_output (o, p2, p - p2); o = variable_buffer_output (o, p2, p - p2);
#if defined(WINDOWS32) || defined(__MSDOS__) #ifdef HAVE_DOS_PATHS
/* Handle the "d:foobar" case */ /* Handle the "d:foobar" case */
else if (p2[0] && p2[1] == ':' && is_dir) else if (p2[0] && p2[1] == ':' && is_dir)
o = variable_buffer_output (o, p2, 2); o = variable_buffer_output (o, p2, 2);

View File

@ -168,7 +168,7 @@ pattern_search (file, archive, depth, recursions)
lastslash = strrchr (filename, ':'); lastslash = strrchr (filename, ':');
#else #else
lastslash = strrchr (filename, '/'); lastslash = strrchr (filename, '/');
#if defined(__MSDOS__) || defined(WINDOWS32) #ifdef HAVE_DOS_PATHS
/* Handle backslashes (possibly mixed with forward slashes) /* Handle backslashes (possibly mixed with forward slashes)
and the case of "d:file". */ and the case of "d:file". */
{ {

4
job.c
View File

@ -2667,7 +2667,7 @@ construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr)
} }
else if (p[1] != '\0') else if (p[1] != '\0')
{ {
#if defined(__MSDOS__) || defined(WINDOWS32) #ifdef HAVE_DOS_PATHS
/* Only remove backslashes before characters special /* Only remove backslashes before characters special
to Unixy shells. All other backslashes are copied to Unixy shells. All other backslashes are copied
verbatim, since they are probably DOS-style verbatim, since they are probably DOS-style
@ -2691,8 +2691,8 @@ construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr)
&& (strchr (sh_chars_sh, p[1]) == 0)) && (strchr (sh_chars_sh, p[1]) == 0))
/* back up one notch, to copy the backslash */ /* back up one notch, to copy the backslash */
--p; --p;
#endif /* HAVE_DOS_PATHS */
#endif /* __MSDOS__ || WINDOWS32 */
/* Copy and skip the following char. */ /* Copy and skip the following char. */
*ap++ = *++p; *ap++ = *++p;
} }

8
main.c
View File

@ -1345,15 +1345,15 @@ int main (int argc, char ** argv)
+ sizeof (DEFAULT_TMPFILE) + 1); + sizeof (DEFAULT_TMPFILE) + 1);
strcpy (template, tmpdir); strcpy (template, tmpdir);
#if defined __MSDOS__ || defined(WINDOWS32) #ifdef HAVE_DOS_PATHS
if (strchr ("/\\", template[strlen (template) - 1]) == NULL) if (strchr ("/\\", template[strlen (template) - 1]) == NULL)
strcat (template, "/"); strcat (template, "/");
#else #else
#ifndef VMS # ifndef VMS
if (template[strlen (template) - 1] != '/') if (template[strlen (template) - 1] != '/')
strcat (template, "/"); strcat (template, "/");
#endif /* !VMS */ # endif /* !VMS */
#endif /* __MSDOS__ || WINDOWS32 */ #endif /* !HAVE_DOS_PATHS */
strcat (template, DEFAULT_TMPFILE); strcat (template, DEFAULT_TMPFILE);
outfile = open_tmpfile (&stdin_nm, template); outfile = open_tmpfile (&stdin_nm, template);

View File

@ -78,18 +78,21 @@ build.sh.in: build.template Makefile
# #
maintFILES = configure aclocal.m4 config.h.in Makefile.in stamp-h.in maintFILES = configure aclocal.m4 config.h.in Makefile.in stamp-h.in
MAINTAINERCLEANFILES += $(maintFILES) $(TEMPLATES) $(MTEMPLATES) NMakefile \ CVS-CLEAN-FILES += $(maintFILES) $(TEMPLATES) $(MTEMPLATES) NMakefile \
missing build.sh.in .dep_segment missing build.sh.in .dep_segment
# Put the alpha distribution files up for anonymous FTP. # This rule tries to clean the tree right down to how it looks when you do a
# # virgin CVS checkout.
ALPHA := ~ftp/gnu
TARFILE := $(distdir).tar.gz
.PHONY: alpha .PHONY: cvs-clean
alpha: $(ALPHA) $(TARFILE) cvs-clean: maintainer-clean
@rm -f $(ALPHA)/$(TARFILE) -rm -f *~
cp -p $(TARFILE) $(ALPHA) -rm -f config/*~ config/Makefile.in config/[a-z]*
-rm -f po/*~ po/Makefile.in.in po/Rules-quot po/[a-z]*
-rm -f doc/*~ doc/Makefile.in doc/fdl.texi doc/make-stds.texi \
doc/texinfo.tex
-rm -f glob/*~ glob/Makefile.in
-rm -f ABOUT-NLS $(CVS-CLEAN-FILES)
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------

View File

@ -1,3 +1,7 @@
2002-08-08 Paul D. Smith <psmith@gnu.org>
* LINGUAS: Add a new translation for Chinese (simplified) (zh_CN).
2002-08-02 Paul D. Smith <psmith@gnu.org> 2002-08-02 Paul D. Smith <psmith@gnu.org>
* LINGUAS: Add a new translation for Swedish (sv). * LINGUAS: Add a new translation for Swedish (sv).

View File

@ -1,5 +1,5 @@
# Set of available languages: 14 languages # Set of available languages: 16 languages
da de es fr gl he hr ja ko nl pl pt_BR sv ru tr da de es fr gl he hr ja ko nl pl pt_BR sv ru tr zh_CN
# Can't seem to get en@quot and en@boldquot to build properly? # Can't seem to get en@quot and en@boldquot to build properly?

22
read.c
View File

@ -445,10 +445,6 @@ eval (ebuf, set_default)
struct floc *fstart; struct floc *fstart;
struct floc fi; struct floc fi;
#if defined (WINDOWS32) || defined (__MSDOS__)
int check_again;
#endif
#define record_waiting_files() \ #define record_waiting_files() \
do \ do \
{ \ { \
@ -932,7 +928,7 @@ eval (ebuf, set_default)
} }
colonp = find_char_unquote(p2, ':', 0, 0); colonp = find_char_unquote(p2, ':', 0, 0);
#if defined(__MSDOS__) || defined(WINDOWS32) #ifdef HAVE_DOS_PATHS
/* The drive spec brain-damage strikes again... */ /* The drive spec brain-damage strikes again... */
/* Note that the only separators of targets in this context /* Note that the only separators of targets in this context
are whitespace and a left paren. If others are possible, are whitespace and a left paren. If others are possible,
@ -1104,10 +1100,13 @@ eval (ebuf, set_default)
|| isspace ((unsigned char)p[-1]))) || isspace ((unsigned char)p[-1])))
p = 0; p = 0;
#endif #endif
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
{
int check_again;
do { do {
check_again = 0; check_again = 0;
/* For MSDOS and WINDOWS32, skip a "C:\..." or a "C:/..." */ /* For DOS paths, skip a "C:\..." or a "C:/..." */
if (p != 0 && (p[1] == '\\' || p[1] == '/') && if (p != 0 && (p[1] == '\\' || p[1] == '/') &&
isalpha ((unsigned char)p[-1]) && isalpha ((unsigned char)p[-1]) &&
(p == p2 + 1 || strchr (" \t:(", p[-2]) != 0)) { (p == p2 + 1 || strchr (" \t:(", p[-2]) != 0)) {
@ -1115,6 +1114,7 @@ eval (ebuf, set_default)
check_again = 1; check_again = 1;
} }
} while (check_again); } while (check_again);
}
#endif #endif
if (p != 0) if (p != 0)
{ {
@ -2048,7 +2048,7 @@ record_files (filenames, pattern, pattern_percent, deps, cmds_started,
not start with a `.', unless it contains a slash. */ not start with a `.', unless it contains a slash. */
if (default_goal_file == 0 && set_default if (default_goal_file == 0 && set_default
&& (*name != '.' || strchr (name, '/') != 0 && (*name != '.' || strchr (name, '/') != 0
#if defined(__MSDOS__) || defined(WINDOWS32) #ifdef HAVE_DOS_PATHS
|| strchr (name, '\\') != 0 || strchr (name, '\\') != 0
#endif #endif
)) ))
@ -2227,8 +2227,8 @@ parse_file_seq (stringp, stopchar, size, strip)
p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1); p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1);
} }
#endif #endif
#if defined(WINDOWS32) || defined(__MSDOS__) #ifdef HAVE_DOS_PATHS
/* For WINDOWS32, skip a "C:\..." or a "C:/..." until we find the /* For DOS paths, skip a "C:\..." or a "C:/..." until we find the
first colon which isn't followed by a slash or a backslash. first colon which isn't followed by a slash or a backslash.
Note that tokens separated by spaces should be treated as separate Note that tokens separated by spaces should be treated as separate
tokens since make doesn't allow path names with spaces */ tokens since make doesn't allow path names with spaces */
@ -2687,7 +2687,7 @@ get_next_mword (buffer, delim, startp, length)
goto done_word; goto done_word;
case ':': case ':':
#if defined(__MSDOS__) || defined(WINDOWS32) #ifdef HAVE_DOS_PATHS
/* A word CAN include a colon in its drive spec. The drive /* A word CAN include a colon in its drive spec. The drive
spec is allowed either at the beginning of a word, or as part spec is allowed either at the beginning of a word, or as part
of the archive member name, like in "libfoo.a(d:/foo/bar.o)". */ of the archive member name, like in "libfoo.a(d:/foo/bar.o)". */

View File

@ -348,7 +348,7 @@ vpath_search (file, mtime_ptr)
there is nothing we can do. */ there is nothing we can do. */
if (**file == '/' if (**file == '/'
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
|| **file == '\\' || **file == '\\'
|| (*file)[1] == ':' || (*file)[1] == ':'
#endif #endif
@ -404,7 +404,7 @@ selective_vpath_search (path, file, mtime_ptr)
pointer to the name-within-directory and FLEN is its length. */ pointer to the name-within-directory and FLEN is its length. */
n = strrchr (*file, '/'); n = strrchr (*file, '/');
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* We need the rightmost slash or backslash. */ /* We need the rightmost slash or backslash. */
{ {
char *bslash = strrchr(*file, '\\'); char *bslash = strrchr(*file, '\\');
@ -445,7 +445,7 @@ selective_vpath_search (path, file, mtime_ptr)
n += name_dplen; n += name_dplen;
} }
#if defined (WINDOWS32) || defined (__MSDOS__) #ifdef HAVE_DOS_PATHS
/* Cause the next if to treat backslash and slash alike. */ /* Cause the next if to treat backslash and slash alike. */
if (n != name && n[-1] == '\\' ) if (n != name && n[-1] == '\\' )
n[-1] = '/'; n[-1] = '/';