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),
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
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
prerequisites are available of course).
This list is eminently suitable for a quick swipe o' the old mouse and a
swift click o' mouse-2 into an xterm. I even grudgingly removed my use
of "advanced shell features" like {}. Go for it!
This list is eminently suitable for a quick swipe o' the mouse and a
swift click o' mouse-2 into an xterm. Go for it!
autopoint

View file

@ -357,6 +357,9 @@
/* Build host information. */
#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
*/

View file

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

View file

@ -499,13 +499,13 @@ func_origin (o, argv, funcname)
}
#ifdef VMS
#define IS_PATHSEP(c) ((c) == ']')
# define IS_PATHSEP(c) ((c) == ']')
#else
#if defined(__MSDOS__) || defined(WINDOWS32)
#define IS_PATHSEP(c) ((c) == '/' || (c) == '\\')
#else
#define IS_PATHSEP(c) ((c) == '/')
#endif
# ifdef HAVE_DOS_PATHS
# define IS_PATHSEP(c) ((c) == '/' || (c) == '\\')
# else
# define IS_PATHSEP(c) ((c) == '/')
# endif
#endif
@ -543,7 +543,7 @@ func_notdir_suffix (o, argv, funcname)
continue;
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". */
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);
else if (p >= p2 && (*p == '.'))
o = variable_buffer_output (o, p2, p - p2);
#if defined(WINDOWS32) || defined(__MSDOS__)
#ifdef HAVE_DOS_PATHS
/* Handle the "d:foobar" case */
else if (p2[0] && p2[1] == ':' && is_dir)
o = variable_buffer_output (o, p2, 2);
@ -938,7 +938,7 @@ func_filter_filterout (o, argv, funcname)
struct a_pattern *pathead;
struct a_pattern **pattail;
struct a_pattern *pp;
struct hash_table a_word_table;
int is_filter = streq (funcname, "filter");
char *pat_iterator = argv[0];

View file

@ -168,7 +168,7 @@ pattern_search (file, archive, depth, recursions)
lastslash = strrchr (filename, ':');
#else
lastslash = strrchr (filename, '/');
#if defined(__MSDOS__) || defined(WINDOWS32)
#ifdef HAVE_DOS_PATHS
/* Handle backslashes (possibly mixed with forward slashes)
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')
{
#if defined(__MSDOS__) || defined(WINDOWS32)
#ifdef HAVE_DOS_PATHS
/* Only remove backslashes before characters special
to Unixy shells. All other backslashes are copied
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))
/* back up one notch, to copy the backslash */
--p;
#endif /* HAVE_DOS_PATHS */
#endif /* __MSDOS__ || WINDOWS32 */
/* Copy and skip the following char. */
*ap++ = *++p;
}

8
main.c
View file

@ -1345,15 +1345,15 @@ int main (int argc, char ** argv)
+ sizeof (DEFAULT_TMPFILE) + 1);
strcpy (template, tmpdir);
#if defined __MSDOS__ || defined(WINDOWS32)
#ifdef HAVE_DOS_PATHS
if (strchr ("/\\", template[strlen (template) - 1]) == NULL)
strcat (template, "/");
#else
#ifndef VMS
# ifndef VMS
if (template[strlen (template) - 1] != '/')
strcat (template, "/");
#endif /* !VMS */
#endif /* __MSDOS__ || WINDOWS32 */
# endif /* !VMS */
#endif /* !HAVE_DOS_PATHS */
strcat (template, DEFAULT_TMPFILE);
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
MAINTAINERCLEANFILES += $(maintFILES) $(TEMPLATES) $(MTEMPLATES) NMakefile \
CVS-CLEAN-FILES += $(maintFILES) $(TEMPLATES) $(MTEMPLATES) NMakefile \
missing build.sh.in .dep_segment
# Put the alpha distribution files up for anonymous FTP.
#
ALPHA := ~ftp/gnu
TARFILE := $(distdir).tar.gz
# This rule tries to clean the tree right down to how it looks when you do a
# virgin CVS checkout.
.PHONY: alpha
alpha: $(ALPHA) $(TARFILE)
@rm -f $(ALPHA)/$(TARFILE)
cp -p $(TARFILE) $(ALPHA)
.PHONY: cvs-clean
cvs-clean: maintainer-clean
-rm -f *~
-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>
* 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?

40
read.c
View file

@ -445,10 +445,6 @@ eval (ebuf, set_default)
struct floc *fstart;
struct floc fi;
#if defined (WINDOWS32) || defined (__MSDOS__)
int check_again;
#endif
#define record_waiting_files() \
do \
{ \
@ -932,7 +928,7 @@ eval (ebuf, set_default)
}
colonp = find_char_unquote(p2, ':', 0, 0);
#if defined(__MSDOS__) || defined(WINDOWS32)
#ifdef HAVE_DOS_PATHS
/* The drive spec brain-damage strikes again... */
/* Note that the only separators of targets in this context
are whitespace and a left paren. If others are possible,
@ -1104,17 +1100,21 @@ eval (ebuf, set_default)
|| isspace ((unsigned char)p[-1])))
p = 0;
#endif
#if defined (WINDOWS32) || defined (__MSDOS__)
do {
check_again = 0;
/* For MSDOS and WINDOWS32, skip a "C:\..." or a "C:/..." */
if (p != 0 && (p[1] == '\\' || p[1] == '/') &&
isalpha ((unsigned char)p[-1]) &&
(p == p2 + 1 || strchr (" \t:(", p[-2]) != 0)) {
p = strchr (p + 1, ':');
check_again = 1;
}
} while (check_again);
#ifdef HAVE_DOS_PATHS
{
int check_again;
do {
check_again = 0;
/* For DOS paths, skip a "C:\..." or a "C:/..." */
if (p != 0 && (p[1] == '\\' || p[1] == '/') &&
isalpha ((unsigned char)p[-1]) &&
(p == p2 + 1 || strchr (" \t:(", p[-2]) != 0)) {
p = strchr (p + 1, ':');
check_again = 1;
}
} while (check_again);
}
#endif
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. */
if (default_goal_file == 0 && set_default
&& (*name != '.' || strchr (name, '/') != 0
#if defined(__MSDOS__) || defined(WINDOWS32)
#ifdef HAVE_DOS_PATHS
|| strchr (name, '\\') != 0
#endif
))
@ -2227,8 +2227,8 @@ parse_file_seq (stringp, stopchar, size, strip)
p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1);
}
#endif
#if defined(WINDOWS32) || defined(__MSDOS__)
/* For WINDOWS32, skip a "C:\..." or a "C:/..." until we find the
#ifdef HAVE_DOS_PATHS
/* 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.
Note that tokens separated by spaces should be treated as separate
tokens since make doesn't allow path names with spaces */
@ -2687,7 +2687,7 @@ get_next_mword (buffer, delim, startp, length)
goto done_word;
case ':':
#if defined(__MSDOS__) || defined(WINDOWS32)
#ifdef HAVE_DOS_PATHS
/* 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
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. */
if (**file == '/'
#if defined (WINDOWS32) || defined (__MSDOS__)
#ifdef HAVE_DOS_PATHS
|| **file == '\\'
|| (*file)[1] == ':'
#endif
@ -404,7 +404,7 @@ selective_vpath_search (path, file, mtime_ptr)
pointer to the name-within-directory and FLEN is its length. */
n = strrchr (*file, '/');
#if defined (WINDOWS32) || defined (__MSDOS__)
#ifdef HAVE_DOS_PATHS
/* We need the rightmost slash or backslash. */
{
char *bslash = strrchr(*file, '\\');
@ -445,7 +445,7 @@ selective_vpath_search (path, file, mtime_ptr)
n += name_dplen;
}
#if defined (WINDOWS32) || defined (__MSDOS__)
#ifdef HAVE_DOS_PATHS
/* Cause the next if to treat backslash and slash alike. */
if (n != name && n[-1] == '\\' )
n[-1] = '/';