Re: Make v3.79, for Windows32

2000-06-15 Thread Eli Zaretskii

 From: "Andre Srinivasan" [EMAIL PROTECTED]
 Date: Thu, 15 Jun 2000 10:05:18 -0700 (GMT-8:00)

 I just checked that indeed bash is being invoked:
 
   $ cat Makefile
 
   all:
   echo $$SHELL
 
   $ make
   echo $SHELL
   d:/cygnus/cygwin-b20/usr/local/bin/sh.exe
   $

It would be more convincing to have a proof that Bash is called to run
the command where the problem happens.  Perhaps the quote style
changes Make's decision about this.

If Bash is indeed called, I'd guess this is some bug between Make and
Bash.




Make, suffix rules and pattern rules. (fwd)

2000-11-01 Thread Eli Zaretskii


I've verified on my system that suffix rules with prerequisites do
seem to work, as in this example:

.c.o: foo.h
@echo $

Assuming you have foo.c and foo.h in your directory, type "make foo.o",
and see Make echo the name "foo.c".

Is something wrong with the assertion in the docs that "suffix rules
cannot have any prerequisites"?

The part with pattern rules, reported below as not working, does work
for me, so I'm guessing that the original Makefile included something
else which caused the pattern rules not to work.

-- Forwarded message --
Date: Wed, 01 Nov 2000 04:25:53 +0100
From: Jerzy Klejnowski [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Newgroups: comp.os.msdos.djgpp
Subject: Make, suffix rules and pattern rules.


Hi!

Maybe I don't understand 'make' documentation, but some things
I've tried seems to behave opposite to what I've read in it.

The documentation says:
   "Suffix rules cannot have any prerequisites of their own.  If they
have any, they are treated as normal files with funny names, not as
suffix rules."
And below that doc shows an example for '%.o: %.c foo.h' pattern rule
"which tells how to make `.o' files from `.c' files, and makes all `.o'
files using this pattern rule also depend on `foo.h'."

But pattern rule does not work for me, while suffix rule does...
Here's part of my makefile:

--begin--
SHELL = bash
CFLAGS = -many -many -options
.SUFFIXES :
.SUFFIXES : .o .c .h

{various rules}
   @echo $
@$(CC) -c $(CFLAGS) $ -o $@
--end--

The results are:

  {various rules}  what 'make' does
  --   -
1  %.o : %.cuses my rule
2  %.o : %.c header.h   uses predefined rule
3  .c.o :   uses my rule
4  .c.o :  header.h uses my rule

Can anybody explain it? Did I misunderstand the docs?

Thanks in advance.

  HARY




___
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make



Re: make for windows use the incorrect date for update check

2001-01-13 Thread Eli Zaretskii


On Fri, 12 Jan 2001, Paul D. Smith wrote:

 Make use the creation time instead the modification time for update check.

???  Is that a question?  Can we possibly have more info, including some 
motivation?

___
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make



Re: make signal text descriptions

2003-10-29 Thread Eli Zaretskii
 Date: Wed, 29 Oct 2003 21:07:39 +
 From: J. Grant [EMAIL PROTECTED]
 
 ok, I've cc [EMAIL PROTECTED], so maybe someone can tell me if signal 
 numbers are decoded.  Would you include this internally? or use a lib etc?

The signal names are decoded if the underlying library supports them.

What port of Make, specifically, do you use?


___
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make


Re: make signal text descriptions

2003-10-29 Thread Eli Zaretskii
 Date: Thu, 30 Oct 2003 00:02:55 +
 From: J. Grant [EMAIL PROTECTED]
 
 I noticed on this list list they talk about it being a failed exec:
 
 http://www.cygwin.com/ml/cygwin/2003-06/msg00674.html

I doubt if this is a signal.  It's more probably an error code from a
library function that tries to launch a subsidiary process and fails.

In other words, if I'm right, some Windows-specific code fails to
distinguish between a subprocess being terminated due to a signal and
a failure to run the subprocess.  A bug that needs to be fixed.



___
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make


Re: [patch] README.W32.template

2003-11-23 Thread Eli Zaretskii
 Date: Sat, 22 Nov 2003 21:00:42 -0500
 From: Paul D. Smith [EMAIL PROTECTED]
 
 Note that this can't be done on Windows, only on UNIX.  Well, anyway,
 I've never done it on Windows and I've never heard of anyone who has.
 The tools required to build from the CVS archive (GNU m4, Perl, GNU
 autoconf, GNU automake, and GNU gettext, at least) are easy to install
 on UNIX systems but I don't know if they'll install properly on
 Windows.

There should be no particular problem to install all those tools on a
Windows machine, but in general, there's a need to install a ported
Bash as well.

There should be no problem running these commands, assuming (I cannot
check that where I'm typing this) that they don't use something that
Windows disallows, like file names with forbidden character.



___
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make


Re: Schedule for GNU make 3.81

2005-02-19 Thread Eli Zaretskii
 Date: Wed, 16 Feb 2005 01:45:41 -0500
 From: [EMAIL PROTECTED]
 
 Today I am announcing the second beta release of GNU make 3.81.  It's
 available from my web site, here:
 
 http://make.paulandlesley.org/make-3.81beta2.tar.bz2
 http://make.paulandlesley.org/make-3.81beta2.tar.gz

Thanks.  I downloaded that and built the DJGPP (a.k.a. MS-DOS) port of
this version of Make, and here are my findings.

1. glob.c needs a patch to not redefine realloc, since (a) the DJGPP
   version of realloc does handle NULL pointers, and (b) latest
   versions of GCC whine about incompatible arguments being passed to
   my_realloc (its arg is char *, but what gets passed to it is some
   other kind of pointer).

2. hash.c needs a small patch to stop compiler from complaining about
   too large signed int value.

3. Makefile.DOS needs patching due to file-name changes in the doc
   subdirectory.

4. Somebody changed job.c so that it tried to include the function
   child_execute_job in the MS-DOS build: that neither works nor is
   necessary, since the DOS port doesn't use that function.

5. On variable.c, the function define_automatic_variables used to
   always export SHELL (there was a line v-export = v_export; right
   after SHELL was assigned the default value), but now it doesn't.
   There's no ChangeLog entry corresponding to that change, so I
   couldn't grasp the reasons for it.  In any case, the DOS port needs
   SHELL to be exported, because otherwise the library function
   `system' doesn't see the value of SHELL modified by the Makefile,
   and doesn't DTRT for Makefile's whose commands require a Unixy
   shell.

6. The new functions $(abspath) and $(realpath) are Unix-centric:
   they used literal '/' for directory separators and don't account
   for possible drive letters under HAVE_DOS_PATHS.

7. dosbuild.bat needs hash.c compilation commands to be added to it.

8. The following file names cause trouble on 8+3 filesystems because
   they clash with other file names:

tests/scripts/variables/MAKEFILE_LIST
config/inttypes_h.m4
config/inttypes-pri.m4

The patches for problems 1 - 7 are attached below.  As for the last
problem, could the offending file names be modified somehow to avoid
the clashes?

Also, the modified code for the abspath function replaces any
backslashes in the DOS/Windows file names with forward slashes;
perhaps this side effect (which I think is a feature) should be
mentioned in make.texi.

Finally, please make sure dosbuild.bat has DOS line endings after you
apply the diffs below.  (Otherwise, some DOS/Windows shells will
refuse to run it.)

TIA


ChangeLog entries:

2005-02-19  Eli Zaretskii  [EMAIL PROTECTED]

* job.c (child_execute_job): Don't define on MS-DOS.

* variable.c (define_automatic_variables) [__MSDOS__]: Always
export SHELL.

* function.c (abspath): Use IS_PATHSEP instead of a literal '/'.
If HAVE_DOS_PATHS is defined, support d:foo style absolute file
names.

* Makefile.DOS (INFO_DEPS, DVIS, TEXINFOS, doc/make.info)
(doc/make.dvi, .texinfo.info, .texinfo, install-info-am)
(uninstall-info): Use doc/*, since docs is now in a subdirectory,
but remove the `doc/' part when installing or uninstalling.
(.texinfo.info, .texinfo): Rename to .texi.info and .texi.

* hash.c (round_up_2): Use 4294967295U to avoid compiler
warnings.

* dosbuild.bat: Add compilation of hash.c.

--- hash.c.orig 2002-10-14 23:54:04.0 +0200
+++ hash.c  2005-02-19 15:40:16.0 +0200
@@ -324,7 +324,7 @@
   n |= (n  8);
   n |= (n  16);
 
-#if !defined(HAVE_LIMITS_H) || ULONG_MAX  4294967295
+#if !defined(HAVE_LIMITS_H) || ULONG_MAX  4294967295U
   /* We only need this on systems where unsigned long is 32 bits.  */
   n |= (n  32);
 #endif
--- Makefile.D~02005-02-16 07:40:42.0 +0200
+++ Makefile.DOS2005-02-19 15:55:10.0 +0200
@@ -71,7 +71,7 @@
 libglob_a_SOURCES =glob/fnmatch.c glob/glob.c glob/fnmatch.h glob/glob.h
 make_LDADD = glob/libglob.a
 
-info_TEXINFOS =make.texinfo
+info_TEXINFOS =make.texi
 man_MANS = make.1
 
 INCLUDES = -I$(srcdir)/glob -DLIBDIR=\c:/djgpp/lib\ 
-DINCLUDEDIR=\c:/djgpp/include\ -DLOCALEDIR=\$(localedir)\
@@ -104,9 +104,9 @@
 LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
 TEXI2DVI = texi2dvi
 TEXINFO_TEX = $(srcdir)/config/texinfo.tex
-INFO_DEPS = make.info
-DVIS = make.dvi
-TEXINFOS = make.texinfo
+INFO_DEPS = doc/make.info
+DVIS = doc/make.dvi
+TEXINFOS = doc/make.texi doc/fdl.texi doc/make-stds.texi
 man1dir = $(mandir)/man1
 MANS = $(man_MANS)
 
@@ -174,23 +174,23 @@
@command.com /c if exist make.exe del make.exe
$(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS)
 
-make.info: make.texinfo
-make.dvi: make.texinfo
+doc/make.info: ${TEXINFOS}
+doc/make.dvi: ${TEXINFOS}
 
 
 DVIPS = dvips
 
-.texinfo.info:
-   @command.com /c if exist make.info* del

Re: Schedule for GNU make 3.81

2005-02-19 Thread Eli Zaretskii
 Date: Sat, 19 Feb 2005 17:42:42 -0500
 Cc: bug-make@gnu.org
 From: Paul D. Smith [EMAIL PROTECTED]
 
   ez 5. On variable.c, the function define_automatic_variables used to
   ezalways export SHELL (there was a line v-export = v_export; right
   ezafter SHELL was assigned the default value), but now it doesn't.
   ezThere's no ChangeLog entry corresponding to that change, so I
   ezcouldn't grasp the reasons for it.  In any case, the DOS port needs
   ezSHELL to be exported, because otherwise the library function
   ez`system' doesn't see the value of SHELL modified by the Makefile,
   ezand doesn't DTRT for Makefile's whose commands require a Unixy
   ezshell.
 
 The info on the new handling of SHELL is here (from the ChangeLog):
 
 2004-11-28  Paul D. Smith  [EMAIL PROTECTED]

Perhaps you should mention the change to define_automatic_variables in
this entry.

 We can special-case this for DOS, if necessary.  It should probably be
 documented that way as well.

Yes.  If I had more time, I might be able to find a way to handle the
problem without breaking Posix compatibility, but I don't have that
kind of free time anymore.  Also, the DJGPP port of Make was used many
years with auto-exported SHELL, and I presume by now that behavior is
relied upon.

   ez tests/scripts/variables/MAKEFILE_LIST
   ez config/inttypes_h.m4
   ez config/inttypes-pri.m4
 
 Hm.  Ouch.
 
 Well, we can rename the MAKEFILE_LIST test without too much hassle.

That'd be good.

 Unfortunately, the other two are automatically installed by gettext,
 and are standard files that are part of the gettext package.

Is there any way to rename them in a way that doesn't break the NLS
build?  Perhaps Bruno could help come up with some ideas?

 Does the DOS port support gettext?

Yes.  Although I didn't look there to see what that port does with
these 2 files.

 What happens when you unpack with those filenames?

The unpacking utility asks for new names for those files whose names
clash.  Which isn't a catastrophe, but I'd like to avoid that if
possible, since it could confuse users.

BTW, there's another problem I didn't mention: the variables/SHELL
test fails.  Given the comments inside the test script, I'm not
surprised ;-)  I might find some time to look closer, but could you
perhaps tell whether that test is at all supposed to work if SHELL is
always exported if set by a Makefile?  If it is not supposed to work,
it should probably be disabled for the DOS port.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Schedule for GNU make 3.81

2005-02-20 Thread Eli Zaretskii
 Date: Wed, 16 Feb 2005 01:45:41 -0500
 From: [EMAIL PROTECTED]
 
 http://make.paulandlesley.org/make-3.81beta2.tar.bz2
 http://make.paulandlesley.org/make-3.81beta2.tar.gz

Here's an annoyance with this beta version when I build it with DJGPP
and GCC 3.3.3 or 3.4.3:

  gcc -I. -I. -I. -I./glob -DLIBDIR=\c:/djgpp/lib\ 
-DINCLUDEDIR=\c:/djgpp/include\ -DLOCALEDIR=\/share/locale\ -DHAVE_CONFIG_H 
-O2 -g -c file.c
  file.c: In function `file_timestamp_cons':
  file.c:554: warning: comparison is always true due to limited range of data 
type

The macro-expanded version of the function file_timestamp_cons is
below.  The expression that triggers the warning seems to be the first
line of the `if' clause, viz.:

  if (! (s = (~ (unsigned long long) 0 - (! ((unsigned long long) -1  
0) ? (unsigned long long) 0 : ~ (unsigned long long) 0  (sizeof (unsigned 
long long) * 8 - 1 - (2 + 1))  (0 ? 30 : 0))  (0 ? 30 : 0)) + (2 + 1) + 
(0 ? 10 : 1) - 1)) - (2 + 1))  (0 ? 30 : 0))

I might be wrong, but I think that the offending comparison is this:

  (unsigned long long) -1  0

which comes from this line in make.h:

  #define INTEGER_TYPE_SIGNED(t) ((t) -1  0)

I tried a few tricks to avoid the warning, but was unable to shut it
up.  Can someone see what's wrong and how to fix that?

--
unsigned long long
file_timestamp_cons (const char *fname, time_t s, int ns)
{
  int offset = (2 + 1) + (0 ? ns : 0);
  unsigned long long product = (unsigned long long) s  (0 ? 30 : 0);
  unsigned long long ts = product + offset;

  if (! (s = (~ (unsigned long long) 0 - (! ((unsigned long long) -1  
0) ? (unsigned long long) 0 : ~ (unsigned long long) 0  (sizeof (unsigned 
long long) * 8 - 1 - (2 + 1))  (0 ? 30 : 0))  (0 ? 30 : 0)) + (2 + 1) + 
(0 ? 10 : 1) - 1)) - (2 + 1))  (0 ? 30 : 0))
  product = ts  ts = ((~ (unsigned long long) 0 - (! 
((unsigned long long) -1  0) ? (unsigned long long) 0 : ~ (unsigned long long) 
0  (sizeof (unsigned long long) * 8 - 1 - (2 + 1))  (0 ? 30 : 0))  (0 
? 30 : 0)) + (2 + 1) + (0 ? 10 : 1) - 1)))
{
  char buf[(((sizeof (unsigned long long) * 8 - 1 - 24) * 302 / 1000) + 1 + 
1 + 4 + 25) + 1];
  ts = s = 2 ? (2 + 1) : ((~ (unsigned long long) 0 - (! ((unsigned 
long long) -1  0) ? (unsigned long long) 0 : ~ (unsigned long long) 0  
(sizeof (unsigned long long) * 8 - 1 - (2 + 1))  (0 ? 30 : 0))  (0 ? 30 
: 0)) + (2 + 1) + (0 ? 10 : 1) - 1);
  file_timestamp_sprintf (buf, ts);
  error (((struct floc *)0), ((const char *) (%s: Timestamp out of range; 
substituting %s)),
 fname ? fname : ((const char *) (Current time)), buf);
}

  return ts;
}


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Schedule for GNU make 3.81

2005-02-21 Thread Eli Zaretskii
 Date: Mon, 21 Feb 2005 08:37:38 -0500
 Cc: bug-make@gnu.org, make-w32@gnu.org
 From: Paul D. Smith [EMAIL PROTECTED]
 
   ez   file.c: In function `file_timestamp_cons':
   ez   file.c:554: warning: comparison is always true due to limited range 
 of data type
 
 Unfortunately there's not much that can be done about this: I've asked
 Paul Eggert (who wrote these macros) about this.  The problem is that
 the test is explicitly trying to determine whether the type is signed or
 unsigned: there's no reliable way to do this at configure time that
 doesn't involve running a program... which we can't do if we want to
 allow GNU make to be cross-compiled (which we definitely do).

Do I understand correctly that you see similar warnings on GNU/Linux
systems?  If so, perhaps some README should tell that this warning is
unavoidable and expected, and should be disregarded.

Anyway, on platforms that use pre-cooked config.h files, like
configh.DOS, perhaps we could define a macro there that would avoid
the warning (since the precise types of the relevant data types is
known in advance), and then the other *.h files could use #ifndef?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-02-13 Thread Eli Zaretskii

Follow-up Comment #6, bug #15718 (project make):

Please try the pretest version of Make 3.81 (beta4).  This problem should be
fixed in that version.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-02-13 Thread Eli Zaretskii

Follow-up Comment #7, bug #15718 (project make):

Let me clarify: Comment #6 is for Doug Konrad.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-02-13 Thread Eli Zaretskii

Follow-up Comment #8, bug #15718 (project make):

Here's a response to Comments #2 and #5:

It's not true that ``SHELL variable assignment within Makefile doesn't work
for Win32 port of GNU make''.  It's just that it's a bit tricky, and also
your test Makefile was too simple to force Make to invoke the shell.  Try
this Makefile instead:

SHELL = perl.exe

all: ; echo 'hello

Note: the unmatched single quote is intentional (it forces Make to invoke the
shell)!

Also note that the .exe extension is currently required, since Make looks for
the shell's file name without appending executable extensions (I think this is
a misfeature, so I will try to fix it soon).

With these changes in the Makefile, I see with the latest beta of Make 3.81
the same behavior as you see in the Cygwin build.

P.S. In general, I think that setting SHELL to anything but a shell, either
cmd.exe or some version of Unixy shell, is playing with fire, and not only on
Windows: GNU Make assumes too much about the shell (it knows about characters
that need special treatment and commands that are built into the shell, for
starters).  Using a program such as Perl that violates these assumptions will
generally cause things to fall apart.

Children, don't try that at home!


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-02-13 Thread Eli Zaretskii

Follow-up Comment #10, bug #15718 (project make):

I'm not sure it's a bug in the Windows port that an arbitrary value of SHELL
does not immediately goto slow; after all, it's hard to imagine radically
different quoting rules for the relatively simple-minded shells we have on
WIndows.

But I will think about this some more when I find time to work on this
issue.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make 3.81rc1 / MSYS

2006-03-04 Thread Eli Zaretskii
 From: David Ergo [EMAIL PROTECTED]
 Date: Tue, 28 Feb 2006 13:08:10 +0100
 Cc: Xavier Marichal [EMAIL PROTECTED],
   =?ISO-8859-1?Q?S=E9bastien?= Frippiat [EMAIL PROTECTED]
 I managed to compile a working version of make 3.81rc1 for MSYS but I
 had do some modifications.
 
 first config/config.guess and config/config.sub must be simply patched
 to support MSYS build system (see config_msys.patch in attachment).
 
 sources must be patched (bugs correction) like specified hereunder (also
 in sources_msys.patch in attachment) :

Thank you for your report.  However:

 file job.c, at line 2525 :
strchr (sh_chars_sh, p[1]) == 0)
 should be :
strchr (sh_chars, p[1]) == 0)
 
 file implicit.c, at line 355 :
   if (!check_lastslash)
 should be :
   if (check_lastslash)
 
 file make.h, at line 350 : 
   #if defined(HAVE_DOS_PATHS)
 should be :
   #if defined(HAVE_DOS_PATHS)  !defined(__MSYS__)

Sorry, it seems I don't understand enough about MSYS-specific issues
to figure out these problems.  sh_chars[] does not exist in the
WINDOWS32 build; are you saying that you are building the Unix parts
of the code?  I always thought that MSYS builds are actually MinGW
builds, i.e. they use the Windows runtime DLL's, not Cygwin-style
Posix runtime libraries.  Am I mistaken?  If so, what is the
difference between a Cygwin build of Make and an MSYS build?

In any case, the first two of the 3 changes you suggest above cannot
be made as you asked for them, since that would break the other ports
of Make for DOS/Windows.  If I understand more about the reasons (see
my questions above), I hope to be able to craft a patch that fixes the
MSYS build without screwing others.

 And after executing 'configure', I had to modify config.h manually
 before executing make (easier for me than correcting the configure
 script) :
 
 to support dos-style paths, changed :
   /* #undef HAVE_DOS_PATHS */
 into
   #define HAVE_DOS_PATHS 1

Again, I don't understand this: if configure says that MSYS doesn't
have DOS drive letters, why do you need to enable its support?

 and to use the internal realpath function as a workaround to the buggy
 msys realpath() function (otherwise the test 'functions/realpath' fails
 at line 19 about realpath of ///), changed :
   #define HAVE_REALPATH 1
 into
   /* #undef HAVE_REALPATH */

This should be handled by modifying the configure test for realpath.
Can you explain what is buggy in the MSYS implementation, so the
configure test could be augmented?

TIA


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-03-04 Thread Eli Zaretskii

Follow-up Comment #14, bug #15718 (project make):

Paul is right: the Windows port does not invoke cmd.exe with the -c switch. 
So there's no bug here and nothing to fix.

Here are the gory details:

If you look closer at job.c:construct_command_argv_internal, you will see
that, in the `slow' case, if the shell is not a Unixy shell, the code creates
a temporary batch file via the call to create_batch_file.  It then writes to
that batch file the actual command, but without the shell name and the -c
switch (it uses command_ptr which was set past the shell name and -c).  Next,
it creates new_argv[] whose zeroth member is the name of the batch file.  This
new_arg[] array is then passed (under the name argv[]) to process_easy, which
simply calls CreateProcess to run the batch file.  The OS will then invoke
the shell to do that.

So there's no -c switch passed to cmd.exe nowhere in sight.

Btw, when you type cmd -c echo hello, cmd.exe doesn't _ignore_ that, it
actually invokes another copy of cmd.exe (that's why you see the Windows
banner).  Type exit to return to your original shell.

If you still think there's a bug related to working with cmd.exe in a
Makefile, please show a test case where it fails.  AFAIK, the current release
candidate code supports cmd.exe with no problems.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #15718] Weird behavior of the SHELL variable on Win32

2006-03-07 Thread Eli Zaretskii
 Date: Sat,  4 Mar 2006 20:17:20 +0200
 From: Eli Zaretskii [EMAIL PROTECTED]
 
 The fact that it doesn't work with setting SHELL from the command line might
 mean there's another place in the code where the special treatment of cmd
 should be added.  Hmmm...

Fixed thusly:

2006-03-04  Eli Zaretskii  [EMAIL PROTECTED]

* variable.c (do_variable_definition) [WINDOWS32]: Call the shell
locator function find_and_set_default_shell if SHELL came from the
command line.


--- variable.c~ 2006-02-17 17:29:52.0 +0200
+++ variable.c  2006-03-04 20:46:50.24850 +0200
@@ -1167,7 +1167,8 @@ do_variable_definition (const struct flo
   else
 #endif /* __MSDOS__ */
 #ifdef WINDOWS32
-  if ((origin == o_file || origin == o_override)  streq (varname, SHELL))
+  if ((origin == o_file || origin == o_override || origin == o_command)
+   streq (varname, SHELL))
 {
   extern char *default_shell;
 


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-03-07 Thread Eli Zaretskii

Follow-up Comment #19, bug #15718 (project make):

The real bugs wrt SHELL that still need to be worked on are:

1. When the Windows port searches along PATH for a shell whose name is not
cmd, it does not try to append the executable extensions, so SHELL=foo would
not find foo.exe

2. If the value of SHELL is not a simple file name, Make does the wrong
thing: it decides that the shell cannot be found and uses the default value
instead.

3. There's also a mess regarding the unixy_shell flag: it is not set/reset
correctly, in some situations, if the Makefile or command line specify a
non-default shell.  The correct place to set that flag is in job.c, where the
shell is actually used.

The first one is relatively easy to fix, provided that the release won't
happen before next weekend.  The second and the third I suggest to postpone
until after the release.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make 3.81rc1 / MSYS

2006-03-07 Thread Eli Zaretskii
 From: David Ergo [EMAIL PROTECTED]
 Cc: bug-make@gnu.org, Xavier Marichal [EMAIL PROTECTED],
 =?ISO-8859-1?Q?S=E9bastien?= Frippiat [EMAIL PROTECTED]
 Sorry, but as a understand the code, sh_chars_sh is an intermediate
 variable as sh_chars_dos is, and sh_chars is the real variable to use.

That's true.

 I thinks the code is buggy, it should not assume that sh_chars is
 sh_chars_sh.

It doesn't.  It specifically uses sh_chars_sh to refer to characters
special to a Unixy shell, _even_when_ the shell in use is not a Unixy
shell.  That is because many Makefiles are written assuming a Unixy
shell, so they quote special characters with a backslash.  These
backslashes need to be removed even if the shell is cmd.exe.

If you have a specific situation where this specific code causes
trouble, please post the sample Makefile and show how it fails.

  of the code?  I always thought that MSYS builds are actually MinGW
  builds, i.e. they use the Windows runtime DLL's, not Cygwin-style
  Posix runtime libraries.  Am I mistaken?  If so, what is the
  difference between a Cygwin build of Make and an MSYS build?
 
 yes, for MSYS we use Unix code
 cygwin build use cygwin dll which is a posix emulation layer
 msys build use msys dll which is a posix native layer

What is a ``posix native layer''?  A runtime can be either native
(i.e. MS-Windows style) or Posix, but not both.

  In any case, the first two of the 3 changes you suggest above cannot
  be made as you asked for them, since that would break the other ports
  of Make for DOS/Windows.  If I understand more about the reasons (see
 
 If didn't misunderstood the code, these changes are NOT specific to MSYS
 !
 First one : as explained above, sh_chars is sh_chars_sh or sh_chars_dos

Well, I hope I now explained why I think it is right.  I need to see a
real failure to become convinced otherwise and start thinking about a
solution.  If you have such a test case, please show it.

 Second one: the code is buggy even for other builds :
 Line 352 : check_lastslash = strchr (target, '/') == 0;
 So, check_lastslash is true if '/' is not found in target
 Line 354 : /* Didn't find it yet : check for DOS-type directories. */
 So we must check for DOS-type dirs if not found, so line 355 MUST be
   if (check_lastslash)
 i.e. if ('/' not found)

Yes, you are right, sorry.  I was looking at the wrong line when I
answered your original message.

(Paul, this is the code you changed between beta4 and rc1.)

  Again, I don't understand this: if configure says that MSYS doesn't
  have DOS drive letters, why do you need to enable its support?
 
 MSYS has DOS and UNIX paths :
 c:\msys\bin, c:/msys/bin and /usr/local/bin are all valid paths under
 MSYS.

Then why does the configure scripts says that DOS paths are not
supported on MSYS?  Can you say what test there does the wrong thing
for MSYS?

  This should be handled by modifying the configure test for realpath.
  Can you explain what is buggy in the MSYS implementation, so the
  configure test could be augmented?
 
 I'm not sure about what is buggy, all I can tell is that if make is
 compiled with MSYS realpath then the test 'functions/realpath' in the
 tests/ subdir fails at line 19 where the test is :
 ifneq ($(realpath ///),/)
   $(error)
 endif 
 I assume this means that realpath(///) should return /, but it does
 not.

Can you verify this with a simple test program?  We need to know for
sure to modify the configure script.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make 3.81rc1 / MSYS

2006-03-07 Thread Eli Zaretskii
 From: David Ergo [EMAIL PROTECTED]
 Cc: bug-make@gnu.org, Xavier Marichal [EMAIL PROTECTED],
 =?ISO-8859-1?Q?S=E9bastien?= Frippiat [EMAIL PROTECTED]
 Date: Tue, 07 Mar 2006 09:28:46 +0100
 
 Ok, now I understand. But for MSYS, as it uses unix code, sh_chars_sh is
 not defined and the code doesn't compile, so maybe another solution is
 to define it at line 2310 (in the unix case) by something like this :
   ifdef __MSYS__
 char* sh_chars_sh = sh_chars;
   endif
 or still another solution, closer to other platforms: at line 2304
 define sh_chars_sh instead of sh_chars, and at line 2310, define 
   char* sh_chars = sh_chars_sh;

Okay, will do one of these, thanks.

 'configure' just check for specific platforms to know if DOS paths are
 supported.
 file 'configure', just change line 8105 :
   #if !defined _WIN32  !defined __WIN32__  !defined __MSDOS__ 
 !defined __EMX__
 into :
   #if !defined _WIN32  !defined __WIN32__  !defined __MSDOS__ 
 !defined __EMX__  !defined __MSYS__

Okay.

   I assume this means that realpath(///) should return /, but it does
   not.
  
  Can you verify this with a simple test program?  We need to know for
  sure to modify the configure script.
 
 see simple test file in attachment : 
 returns 0 if ok
 1 if buggy

And I assume it returns 1 on MSYS, yes?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-03-08 Thread Eli Zaretskii

Follow-up Comment #16, bug #15718 (project make):

Thanks.

Does it work if you put

SHELL=cmd

inside the Makefile?  That does work for me.

The fact that it doesn't work with setting SHELL from the command line might
mean there's another place in the code where the special treatment of cmd
should be added.  Hmmm...


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15718] Weird behavior of the SHELL variable on Win32

2006-03-10 Thread Eli Zaretskii

Follow-up Comment #17, bug #15718 (project make):

Okay, I've found the culprit: setting SHELL from the command-line arguments
wasn't handled as setting it from the Makefile.  I think that's a bug (the
Unix version doesn't handle SHELL in any special way when it comes from the
command line), so I think it should be fixed by the attached patch .


___

Additional Item Attachment:

File name: shell.dif  Size:0 KB
Patch for setting SHELL= on Windows from the command line
http://savannah.gnu.org/bugs/download.php?item_id=15718item_file_id=3471

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=15718

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16132] Quoting problem in 3.81rc1

2006-03-20 Thread Eli Zaretskii

Follow-up Comment #2, bug #16132 (project make):

I cannot reproduce this, either, on Windows XP.  I tried with and without a
Unixy sh.exe on my PATH, and both behave as expected, identically to v3.80
and v3.80b4.

(The behavior with and without sh.exe is not identical, but that's because
the `echo' built-in behaves differently in each case, as far as removing
single and double quotes is concerned.)

What kind of sh.exe are you using, and how (with what compiler and
development environment) did you build Make 3.81rc1?


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16132

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16132] Quoting problem in 3.81rc1

2006-03-21 Thread Eli Zaretskii

Follow-up Comment #11, bug #16132 (project make):

The result without sh.exe is the expected one.  So Make is working correctly,
and the problem is is (in)compatibility with the Cygwin shell.

When I need a Unixy shell, I use the old port of zsh.  You should be able to
find it on the net (sorry, I don't have a URL handy).  It isn't ideal, since
it has bugs that prevent it from running a typical configure script, but it
works very well for Makefiles that expect a Unixy shell.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16132

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16132] Quoting problem in 3.81rc1

2006-03-21 Thread Eli Zaretskii

Follow-up Comment #13, bug #16132 (project make):

Did the OP build the previous versions of Make with the same compiler as the
release candidate?  If not, perhaps therein lies the reason for the
difference, especially if the other versions are Cygwin ports (as opposed to
to rc1 that was built with Microsoft Visual C).

We did change the backslash handling, but only before the newline, and there
are no such combinations in the Makefile presented here.

I don't have the Cygwin shell installed on any of my machines, so I cannot
test this myself.  If the OP can debug this, I'm willing to provide
guidance.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16132

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16132] Quoting problem in 3.81rc1

2006-03-24 Thread Eli Zaretskii

Follow-up Comment #18, bug #16132 (project make):

Then I suggest that you try replacing the shell as well.  As I already wrote,
I cannot reproduce this with my version of sh.exe.

Alternatively, you could try to debug this and see where exactly the problem
lies.  If you can afford spending some time with the Visual Studio stepping
through the code that invokes the shell, you will find here several people
ready to give advice and suggest ideas.

As yet another possibility: can your build work without a Unix shell?  If so,
rename sh.exe (or remove it from PATH), and see if things work for you.

Finally, you could try building Make with either HAVE_CYGWIN_SHELL or
BATCH_MODE_ONLY_SHELL (but not both!) defined in config.h.  Or if you already
have one of these defined, try undefining them.  Maybe one of these will solve
your problems.  (If it does, please tell the details, so that we could update
the installation instructions.)  FWIW, my Make binary is built with both of
these undefined.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16132

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16132] Quoting problem in 3.81rc1

2006-03-27 Thread Eli Zaretskii

Follow-up Comment #16, bug #16132 (project make):

Yes, I'm the same Eli Z.

Paul is correct asking you for the details of the old versions: how they were
built and with what compier.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16132

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16132] Quoting problem in 3.81rc1

2006-03-27 Thread Eli Zaretskii

Follow-up Comment #21, bug #16132 (project make):

Thanks, Pieter.  This means there's no bug at all: the comments inside
config.h.W32 clearly say to define HAVE_CYGWIN_SHELL if you are using such a
shell.  (Paul, do you think we should emphasize this in README.W32?)

I don't know why echo is defined as a built-in only for batch-mode sh.exe
(note that it is always defined for cmd.exe).  Perhaps it's because of some
quoting issue, since basically, invoking Cygwin programs from a VC-compiled
Make is playing with fire.  As Paul points out, this code is there for a long
time, so let's not change it now, before the release.  You can always use
echo.exe from Coreutils if you need `echo', right?


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16132

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Contradicting license informations in make.texi

2006-03-28 Thread Eli Zaretskii
 Date: Sun, 26 Mar 2006 13:14:49 +0200
 From: Sven Joachim [EMAIL PROTECTED]
 
 1) Version b) lists the ``GNU General Public License'' as an Invariant
 Section, but does not actually include it.

It should mention the GFDL section (which _is_ included) instead.  I'm
guessing that when the manual was converted to GFDL, the stale
reference to GPL was left behind by mistake.

 2) Obviously, version a) and b) differ.  This may be a mistake, and
 you may just bring them in sync.  Otherwise, it is unclear how to
 interpret it.

I don't think this is a mistake: the printed version mentions cover
text because only that version actually has cover text.  But IANAL.

 3) GFDL version 1.1 is listed as license for the manual, but later
 included is the text for GFDL version 1.2.  You probably want to
 upgrade to version 1.2 consistently.

It says ``version 1.1 or later'', so there's no contradiction, at
least not legally.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Problem with overriding def. SHELL-sh.exe on W2000

2006-03-28 Thread Eli Zaretskii
 Date: Mon, 27 Mar 2006 23:05:41 +0200
 From: [EMAIL PROTECTED]
 
 I'm using gnumake 3.78 (also tried 3.8) buided with VC on W2000.
 I've a problem with overriding default SHELL value from sh.exe to cmd.exe.

Yes, this is a known problem with Make on Windows.  I believe it has
been corrected in the current development code, which will be soon
released as Make 3.81.  You can try fetching the latest release
candidate from this URL:

  ftp://alpha.gnu.org/gnu/make/make-3.81rc2.tar.gz

The file README.W32 includes instructions for building Make on
Windows.

If this problem doesn't go away with the new version of Make, please
report that.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Probable Spam: make 3.81 cannot build gcc 4.x.y

2006-04-03 Thread Eli Zaretskii
 Date: Mon, 03 Apr 2006 14:25:12 +0400
 From: =?KOI8-R?Q?=E4=C5=CA=D4=C5=D2_=E1=CC=C5=CB=D3=C1=CE=C4=D2_=F7=C1?=
   =?KOI8-R?Q?=CC=C5=D2=C9=C5=D7=C9=DE?= [EMAIL PROTECTED]
 
 After update GNU make from 3.80 up to 3.81 i cannot build gcc 4.0.2,
 4.0.3 and 4.1.0 whith same error:
 
 rm -f ./libgcov.a
 ar  rc ./libgcov.a libgcc/./_gcov.o libgcc/./_gcov_merge_add.o
 libgcc/./_gcov_me
 rge_single.o libgcc/./_gcov_merge_delta.o libgcc/./_gcov_fork.o
 libgcc/./_gcov_e
 xecl.o libgcc/./_gcov_execlp.o libgcc/./_gcov_execle.o
 libgcc/./_gcov_execv.o li
 bgcc/./_gcov_execvp.o libgcc/./_gcov_execve.o
 ranlib ./libgcov.a
 make[2]: Leaving directory `/export/home/devel/build/gcc-4.0.3/objdir/gcc'
 echo timestamp  stmp-multilib
 make[1]: Leaving directory `/export/home/devel/build/gcc-4.0.3/objdir/gcc'
 /bin/bash: -c: line 5: syntax error: unexpected end of file
 make: *** [multilib.out] Error 2
 + exit

Please at least show the line about which Bash complains.  It's hard
to know what's wrong without seing that much, and downloading the
humongous GCC distro just to find out what that lines says is not my
idea of fun...

TIA


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #16286] VPATH and directory cache

2006-04-07 Thread Eli Zaretskii
 Date: Thu,  6 Apr 2006 16:33:04 -0400
 From: Paul D. Smith [EMAIL PROTECTED]
 Cc: 
 
 All of the behavior you're seeing is explained in my webpages referenced
 earlier.

Given the number of times this comes up in various forums and in the
bug tracker, would it be a good idea to include in the manual some of
the stuff from your Web pages?  Something like a section VPATH
Pitfalls, perhaps?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16362] Regression: make -n causes $(shell) failure on Windows

2006-04-18 Thread Eli Zaretskii

Follow-up Comment #1, bug #16362 (project make):

Sounds like I should stop trying to maintain the Windows port, as I cause
more trouble than help.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16362

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16476] Inconsistent function macros - again

2006-05-01 Thread Eli Zaretskii

Follow-up Comment #3, bug #16476 (project make):

AFAIK, WINDOWS32 is used because the GNU Project doesn't like to be part of
those who say that MS-Windows is ``a win''.  Therefore, we cannot remove
WINDOWS32 and use _WIN32 instead.

As for its usage policy, WINDOWS32 should be used for OS- and
runtime-dependent code, not for compiler-dependent code (so your assumption
that it is for the MS compiler is incorrect).  The latter should use symbols
specific to the offending compiler, such as __MINGW32__, __MSC_VER, etc.

That is the theory.  The practice could be different, so if you want to clean
up the sources wrt this, I'm sure patches will be gladly accepted (although
it's perhaps prudent to wait until the reorganization of the code is done).

As for Interix, I don't know how to handle that.  Ideally, it should not
compile any of the WINDOWS32 code, since it is a Posix environment.  I think
it's a bad design decision for it to define __MSC_VER, since that's the only
universal symbol that can be used to distinguish the MS compiler from other
Windows compilers.  (Such distinction is needed because the MS compiler has
its own incompatible extensions and lacks some functionality, which makes it
different from other Windows compilers.)  In the long run, the fact that
__MSC_VER is defined in Interix will be a terrible nuisance for building
portable software, because the absolute majority of packages out there assume
that __MSC_VER is a Windows compiler.  But I'm not holding my breath for MS to
stop defining __MSC_VER in Interix.

Finally, I'm not too happy to support your suggestion to replace WINDOWS32 by
HAVE_ANSI_COMPILER in fnmatch, glob, and elsewhere.  The problems with
__STDC__ are specific to the Microsoft Visual C, which defines __STDC__ to
zero unless a special compiler switch is used to enforce strict ANSI build. 
As long as WINDOWS32 stays in those #ifdef's, we will remember what is the
offending compiler, but if we replace it with a much more anonymous
HAVE_ANSI_COMPILER, we will forget the reason very soon, and will some day
wonder why the condition is there at all (since any sane ANSI compiler always
defines __STDC__ to a non-zero value).


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16476

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16505] Line-continuation backslashes are not stripped

2006-05-03 Thread Eli Zaretskii

Follow-up Comment #1, bug #16505 (project make):

This is not a regression, but a deliberate change whose purpose is to follow
the Posix specifications.  From NEWS:

- quotation --
* WARNING: Backward-incompatibility!  
In order to comply with POSIX, the way in which GNU make processes
backslash-newline sequences in command strings has changed.  If your
makefiles use backslash-newline sequences inside of single-quoted strings in
command scripts you will be impacted by this change.  See the GNU make manual
subsection Splitting Command Lines (node Splitting Lines), in section
Command Syntax, chapter Writing the Commands in Rules, for details.
- end quotation ---

So your Makefile is in violation of Posix.  The simplest change to get it to
work is to use double quotes instead of single quotes (and escape the inner
double quotes as appropriate).



___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16505

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16505] Line-continuation backslashes are not stripped

2006-05-03 Thread Eli Zaretskii

Follow-up Comment #6, bug #16505 (project make):

The Posix behavior has its merits: without it, how does one pass a command
line with embedded newlines from a Makefile?  The Posix handling of newlines
in single quotes permits this.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16505

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16505] Line-continuation backslashes are not stripped

2006-05-04 Thread Eli Zaretskii

Follow-up Comment #11, bug #16505 (project make):

I can understand everything you are saying -- the backward incompatibility,
the suggestion to add an explicit warning, the works.  The only thing I do
NOT understand is why do you insist on telling about the EOF error etc., when
you have at least two ways of working around the problem: either use double
quotes instead of single quotes, or put the entire multi-line script into a
Make variable (in which case you can keep the single quotes)?  It should not
be too hard to modify your Makefile to work with the new release of Make,
without breaking the old releases as well.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16505

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Windows XP and make 3.80

2006-05-05 Thread Eli Zaretskii
 Date: Fri, 05 May 2006 10:14:38 -0400
 From: =?ISO-8859-1?Q?Pablo_Alarc=F3n_Pavez?= [EMAIL PROTECTED]
 
 Command: make clean
 OS: Windows XP version 2002, service pack 2
 make version: 3.80
 
 It interprets rmdir /q /s lib as rmdir /q, rmdir /s and rmdir lib with 
 errors.

Do you have an rmdir.exe program somewhere on your PATH?  Or perhaps
you have a Unixy shell sh.exe somewhere?  If so, Make will invoke
those Unix-style rmdir commands in preference to the cmd.exe built-in.

If you want to be sure the cmd's rmdir is invoked, I suggest to modify
your Makefile as follows:

clean: 
@echo make version 3.80 and Windows XP 2002 SP2
cmd.exe /c rmdir /q /s lib


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #16362] Regression: make -n causes $(shell) failure on Windows

2006-05-27 Thread Eli Zaretskii

Follow-up Comment #3, bug #16362 (project make):

The following patch fixes this bug:

--- function.c~02006-04-01 12:36:40.0 +0300
+++ function.c  2006-05-27 15:58:26.984375000 +0300
@@ -1589,12 +1589,25 @@ func_shell (char *o, char **argv, const 
   int pid;
 
 #ifndef __MSDOS__
+#ifdef WINDOWS32
+  /* Reset just_print_flag.  This is needed on Windows when batch files
+ are used to run the commands, because we normally refrain from
+ creating batch files under -n.  */
+  int j_p_f = just_print_flag;
+
+  just_print_flag = 0;
+#endif
   /* Construct the argument list.  */
   command_argv = construct_command_argv (argv[0],
 (char **) NULL, (struct file *) 0,
  batch_filename);
   if (command_argv == 0)
-return o;
+{
+#ifdef WINDOWS32
+  just_print_flag = j_p_f;
+#endif
+  return o;
+}
 #endif
 
   /* Using a target environment for `shell' loses in cases like:
@@ -1622,12 +1635,14 @@ func_shell (char *o, char **argv, const 
 #ifdef WINDOWS32
 
   windows32_openpipe (pipedes, pid, command_argv, envp);
+  /* Restore the value of just_print_flag.  */
+  just_print_flag = j_p_f;
 
   if (pipedes[0]  0) {
/* open of the pipe failed, mark as failed execution */
 shell_function_completed = -1;
 
-   return o;
+return o;
   } else
 
 #elif defined(__MSDOS__)


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=16362

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Bug in builtin function abspath (again)

2006-05-30 Thread Eli Zaretskii
 Date: Tue, 30 May 2006 10:49:17 -0400
 Cc: bug-make@gnu.org
 From: Paul D. Smith [EMAIL PROTECTED]
 
  The realpath function will resolve both absolute and relative paths
  and return the absolute pathname corresponding to pathname. All but
  the last component of pathname must exist when realpath is called.
 
 It's not immediately clear to me what all but the last component of
 pathname means; presumably it means that the directory containing the
 last filename in pathname must exist, but that the filename itself does
 not have to exist.

Yes, that seems to be the meaning.  But on platforms where there's no
realpath, we currently use abspath that doesn't care whether that
directory exists.  Since Joe Random Hacker might not know whether her
Make was built with or without realpath (and the docs don't even tell
that realpath falls back on abspath), we should try to emulate
realpath as close as we can, I think.

I also thought about writing an emulation for realpath by using
readlink.  Unless I'm missing something, that shouldn't be too hard.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Bug in builtin function abspath (again)

2006-05-31 Thread Eli Zaretskii
 From: Boris Kolpackov [EMAIL PROTECTED]
 Date: Wed, 31 May 2006 07:48:12 + (UTC)
 
 I just checked the page for realpath in SUS and I don't see anything
 that implies this. My understanding that all components of the path
 must exist.

So it's probably system-dependent.

  Yes, that seems to be the meaning.  But on platforms where there's no
  realpath, we currently use abspath that doesn't care whether that
  directory exists.  Since Joe Random Hacker might not know whether her
  Make was built with or without realpath (and the docs don't even tell
  that realpath falls back on abspath), we should try to emulate
  realpath as close as we can, I think.
 
  I also thought about writing an emulation for realpath by using
  readlink.  Unless I'm missing something, that shouldn't be too hard.
 
 Here is the documentation for realpath and abspath from GNU make manual:

Well, granted, I've read this before I wrote the above.  Note that
this documentation doesn't say what happens on systems where there's
no realpath, and most users won't know whether their binary has or
doesn't have it.

 I guess for platforms without realpath, we can emulate it as
 func_wildcard (func_abspath (...)) rather than just func_abspath (...).

Yes, that'd be nice, I think.  But using readlink is better (albeit
more complicated) because it will then resolve symlinks on systems
that have them.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: bug when redirecting mingw32-make output (w32/sub_proc/sub_proc.c)

2006-06-03 Thread Eli Zaretskii
 From: Roland Puntaier [EMAIL PROTECTED]
 Date: Fri, 2 Jun 2006 17:36:00 +0200
 
 process_easy: DuplicateHandle(In) failed is issued, when redirecting the 
 mingw32-make output from a parent process.
 
 GetStdHandle returns 0, which is not an error, but also no handle to be 
 duplicated.

Thanks for the report and the patch, but could you please post a
minimal recipe to reproduce the bug?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17105] problem colon after drive letter in prerequisite

2006-07-14 Thread Eli Zaretskii

Follow-up Comment #1, bug #17105 (project make):

This problem doesn't happen with the native Windows build of Make 3.81.  If
you rewally need to use the Cygwin build, I suggest to take this up with the
Cygwin maintainers: I don't know whether the Cygwin version is supposed to
support file names with drive letters.  Otherwise, build a native binary, or
find a precompiled one somewhere.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=17105

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: syntax error vpath.c line 348

2006-07-31 Thread Eli Zaretskii
 Date: Mon, 31 Jul 2006 16:16:53 +0200 (MEST)
 From: Stefan Renz[EMAIL PROTECTED]
 
 I just tried to build gnu make for win32 and got an error message like this:
 
 syntax error vpath.c line 348
 There are too many  actual parameters etc.
 
 I changed it from
 n = rindex(*file,, '\\');
 to
 n = rindex(*file, '\\');

What version of Make is that?  There's no such line in vpath.c that
comes with the latest version 3.81 of GNU Make.

Thank you for your report, anyway.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17381] Compile errors under DJGPP

2006-08-12 Thread Eli Zaretskii

Follow-up Comment #1, bug #17381 (project make):

The following patch should take care of this:

2006-08-12  Eli Zaretskii  [EMAIL PROTECTED]

* job.h [__MSDOS__]: Use the same prototype for child_execute_job as 
__EMX__
does.


--- job.h~0 2006-02-12 02:16:04.0 +0200
+++ job.h   2006-08-12 15:44:06.87500 +0300
@@ -73,7 +73,7 @@
 extern char **construct_command_argv PARAMS ((char *line, char **restp,
struct file *file, char** batch_file));
 #ifdef VMS
 extern int child_execute_job PARAMS ((char *argv, struct child *child));
-#elif defined(__EMX__)
+#elif defined(__MSDOS__) || defined(__EMX__)
 extern int child_execute_job PARAMS ((int stdin_fd, int stdout_fd, char
**argv, char **envp));
 #else
 extern void child_execute_job PARAMS ((int stdin_fd, int stdout_fd, char
**argv, char **envp));


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?func=detailitemitem_id=17381

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #17381] Compile errors under DJGPP

2006-08-12 Thread Eli Zaretskii
 Date: Tue,  8 Aug 2006 23:03:15 +
 From: anonymous [EMAIL PROTECTED]
 Cc: 
 
 job.c:1898: error: conflicting types for 'child_execute_job'
 job.h:79: error: previous declaration of 'child_execute_job' was here
 job.c: In function 'child_execute_job':
 job.c:1931: error: void value not ignored as it ought to be

Thanks.

Here's a patch to fix this:

2006-08-12  Eli Zaretskii  [EMAIL PROTECTED]

* job.h [__MSDOS__]: Use the same prototype for child_execute_job
as __EMX__ does.


--- job.h~0 2006-02-12 02:16:04.0 +0200
+++ job.h   2006-08-12 15:44:06.87500 +0300
@@ -73,7 +73,7 @@
 extern char **construct_command_argv PARAMS ((char *line, char **restp, struct 
file *file, char** batch_file));
 #ifdef VMS
 extern int child_execute_job PARAMS ((char *argv, struct child *child));
-#elif defined(__EMX__)
+#elif defined(__MSDOS__) || defined(__EMX__)
 extern int child_execute_job PARAMS ((int stdin_fd, int stdout_fd, char 
**argv, char **envp));
 #else
 extern void child_execute_job PARAMS ((int stdin_fd, int stdout_fd, char 
**argv, char **envp));


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17521] target-specific variables inluding semicolon

2006-08-25 Thread Eli Zaretskii

Follow-up Comment #1, bug #17521 (project make):

This is not a bug, but a documented change in behavior, intended to bring GNU
Make in line with Posix specification for Make.

From the NEWS file:

* WARNING: Backward-incompatibility!
  In order to comply with POSIX, the way in which GNU make processes
  backslash-newline sequences in command strings has changed.  If your
  makefiles use backslash-newline sequences inside of single-quoted
  strings in command scripts you will be impacted by this change.  See
  the GNU make manual subsection Splitting Command Lines (node
  Splitting Lines), in section Command Syntax, chapter Writing the
  Commands in Rules, for details.

In other words, your Makefile violates Posix rules for Make; in order to fix
your Makefile, either use double quotes instead of single quotes, or put the
single-quoted string into a Make variable and use that variable in rule's
commands.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?17521

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: filenames with colons in them

2006-09-04 Thread Eli Zaretskii
 From: Dan Jacobson [EMAIL PROTECTED]
 Date: Tue, 05 Sep 2006 03:15:52 +0800
 
 In the make concept index, I hit RET upon
 * :: rules (double-colon):   Double-Colon.(line   6)
 and I get
 byte-code: No such node or anchor: : rules (double-colon): Double-Colon
 here in Debian's emacs-snapshot.
 
 In the standalone info reader, on instead jumps to the top node of make.

The current CVS Emacs also jumps to the top node of the Make manual.
I see no error message.

Anyway, that index entry is invalid: the Texinfo manual forbids index
entries that have 2 colons in a row.  I suggest to report this to the
Make maintainer.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make cannot handle prerequisites that contain a colon

2006-09-30 Thread Eli Zaretskii
 From: Bas Holleman [EMAIL PROTECTED]
 Date: Fri, 29 Sep 2006 10:01:16 + (UTC)
 
 Hi Sebastien,
 
 About the problem: gmake begin_process CreateProcess failed.

I cannot find the beginning of this thread in the archives.

 This is my experience: The Windows PATH variable is to long. gmake runs in
 something like a DOS environment. It can not handle more than 256 characters.

This is not true: On Windows, PATH can have much more than 256
characters.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: SHELL -c hardwired

2006-10-29 Thread Eli Zaretskii
 From: Dan Jacobson [EMAIL PROTECTED]
 Date: Sun, 29 Oct 2006 08:02:17 +0800
 
 One can set SHELL, but there's no way to get rid of the -c in case one
 wants too. E.g., one wants to make SHELL=mysql as an experiment etc.
 mysql would need a -e, etc.

Doesn't it work to customize shell-file-name and shell-command-switch?
If not, please report which Emacs function(s) don't honor these
variables.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: SHELL -c hardwired

2006-11-05 Thread Eli Zaretskii
 From: Dan Jacobson [EMAIL PROTECTED]
 Date: Mon, 06 Nov 2006 05:58:15 +0800
 
  One can set SHELL, but there's no way to get rid of the -c in case one
  wants too. E.g., one wants to make SHELL=mysql as an experiment etc.
  mysql would need a -e, etc.
 
 EZ Doesn't it work to customize shell-file-name and shell-command-switch?
 EZ If not, please report which Emacs function(s) don't honor these
 EZ variables.
 
 I recall I was talking about a pure make(1) problem, not emacs.

Sorry, I guess I was confused.

As far as Make is concerned, I think you can say SHELL=mysql -e and
have it your way, no?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Tiny project to play with gmake ?

2006-11-16 Thread Eli Zaretskii
 Date: Wed, 15 Nov 2006 13:23:31 +0200
 From: Maxim Vexler [EMAIL PROTECTED]
 
 To make a good starting point I'm looking for a small (tiny) open
 source project, one with a few cpp files, some small .h files. A bonus
 would be if this project uses a small but stable (compile wise) 3rd
 party library.

How about GNU hello?  It's available from ftp://ftp.gnu.org/gnu/hello/.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: File path bug on windows platform

2006-11-25 Thread Eli Zaretskii
 Date: Fri, 24 Nov 2006 00:44:42 +0800
 From: goodmen [EMAIL PROTECTED]
 
 I'm using gnu make version 3.81. I compile the soucre using msvc7.
 Please run this script on ms windows of any version.
 ===
 __this_file := $(lastword $(MAKEFILE_LIST))
 __this_file := $(abspath $(__this_file))
 __sub_dir_path := $(realpath $(dir $(__this_file))/sub_dir)
 
 $(warning $(__this_file))
 $(warning $(__sub_dir_path))
 
 all :
 @ echo Please run this gnumake script on M$-windows
 ===
 
 the realpath do not work as the doc described.
 I'm tried to fix this bug, but I trust the skills of the authors than mine.
 Here is some info:
 in the file function.c , abspath() ,line 1892 says : if (name[0] != '/')
 but on windows system, this condition is not an indicator of whether a
 string is absolute path.

Thank you for your report.

As of Make 3.81, the functions abspath and realpath are not yet
supported on MS-Windows.  They currently only work on Posix platforms.

I hope to have that fixed in the next release.

In fact, I have a preliminary patch to fix that, so if you need this
ASAP, and can rebuild Make from sources on your machine, please try
the patch below and tell me if it works for you.


2006-05-27  Eli Zaretskii  [EMAIL PROTECTED]

* function.c (IS_ABSOLUTE, ROOT_LEN): New macros.
(abspath): Support systems that define HAVE_DOS_PATHS (have
drive letters in their file names).  Use IS_PATHSEP instead of a
literal '/' comparison.  Use IS_ABSOLUTE and ROOT_LEN.


--- function.c~12006-05-27 15:58:26.984375000 +0300
+++ function.c  2006-05-27 17:37:47.453125000 +0300
@@ -1890,6 +1890,14 @@ func_not (char *o, char **argv, char *fu
 #endif
 
 
+#ifdef HAVE_DOS_PATHS
+#define IS_ABSOLUTE(n) (n[0]  n[1] == ':')
+#define ROOT_LEN 3
+#else
+#define IS_ABSOLUTE(n) (n[0] == '/')
+#define ROOT_LEN 1
+#endif
+
 /* Return the absolute name of file NAME which does not contain any `.',
`..' components nor any repeated path separators ('/').   */
 
@@ -1898,13 +1906,14 @@ abspath (const char *name, char *apath)
 {
   char *dest;
   const char *start, *end, *apath_limit;
+  unsigned long root_len = ROOT_LEN;
 
   if (name[0] == '\0' || apath == NULL)
 return NULL;
 
   apath_limit = apath + GET_PATH_MAX;
 
-  if (name[0] != '/')
+  if (!IS_ABSOLUTE(name))
 {
   /* It is unlikely we would make it until here but just to make sure. */
   if (!starting_directory)
@@ -1912,12 +1921,40 @@ abspath (const char *name, char *apath)
 
   strcpy (apath, starting_directory);
 
+#ifdef HAVE_DOS_PATHS
+  if (IS_PATHSEP(name[0]))
+   {
+ /* We have /foo, an absolute file name except for the drive
+letter.  Assume the missing drive letter is the current
+drive, which we can get if we remove from starting_directory
+everything past the root directory.  */
+ apath[root_len] = '\0';
+   }
+#endif
+
   dest = strchr (apath, '\0');
 }
   else
 {
-  apath[0] = '/';
-  dest = apath + 1;
+  strncpy (apath, name, root_len);
+  apath[root_len] = '\0';
+  dest = apath + root_len;
+  /* Get past the root, since we already copied it.  */
+  name += root_len;
+#ifdef HAVE_DOS_PATHS
+  if (!IS_PATHSEP(apath[2]))
+   {
+ /* Convert d:foo into d:./foo and increase root_len.  */
+ apath[2] = '.';
+ apath[3] = '/';
+ dest++;
+ root_len++;
+ /* strncpy above copied one character too many.  */
+ name--;
+   }
+  else
+   apath[2] = '/'; /* make sure it's a forward slash */
+#endif
 }
 
   for (start = end = name; *start != '\0'; start = end)
@@ -1925,11 +1962,11 @@ abspath (const char *name, char *apath)
   unsigned long len;
 
   /* Skip sequence of multiple path-separators.  */
-  while (*start == '/')
+  while (IS_PATHSEP(*start))
++start;
 
   /* Find end of path component.  */
-  for (end = start; *end != '\0'  *end != '/'; ++end)
+  for (end = start; *end != '\0'  !IS_PATHSEP(*end); ++end)
 ;
 
   len = end - start;
@@ -1941,12 +1978,12 @@ abspath (const char *name, char *apath)
   else if (len == 2  start[0] == '.'  start[1] == '.')
{
  /* Back up to previous component, ignore if at root already.  */
- if (dest  apath + 1)
-   while ((--dest)[-1] != '/');
+ if (dest  apath + root_len)
+   for (--dest; !IS_PATHSEP(dest[-1]); --dest);
}
   else
{
- if (dest[-1] != '/')
+ if (!IS_PATHSEP(dest[-1]))
 *dest++ = '/';
 
  if (dest + len = apath_limit)
@@ -1959,7 +1996,7 @@ abspath (const char *name, char *apath)
 }
 
   /* Unless it is root strip trailing separator.  */
-  if (dest  apath + 1  dest[-1] == '/')
+  if (dest

Re: Problem with CURDIR variable

2006-12-11 Thread Eli Zaretskii
 From: Paul Smith [EMAIL PROTECTED]
 Date: Mon, 11 Dec 2006 19:42:51 -0500
 Cc: bug-make@gnu.org
 
 This test is kind of strange.  Unless there's some specific reason the
 makefile REQUIRES the CURDIR variable to be set by make, it should be
 rewritten:
 
 ifndef CURDIR
 $(error Please define the CURDIR variable (or use a newer version of GNU 
 make))
 endif

But this test could be defeated if CURDIR was defined in the
environment, right?  If so, the test should make sure CURDIR doesn't
come from the environment.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Bug: make igores options, switches and targets

2007-01-19 Thread Eli Zaretskii
 Date: Thu, 18 Jan 2007 22:28:12 +0100
 From: Georg-Johann Lay [EMAIL PROTECTED]
 
 I have some trouble with GNU make. The make comes from WinAVR, a 
 distribution of avr-gcc for Win32, i.e. mingw. It is the most recent 
 build from 2006-04-21

But the output you show from make --version, viz.

   make --version
 GNU Make 3.80

clearly says that this is not the latest version of Make.  The latest
version is 3.81, and it is available from MinGW.

   make clean
 echo clean
 clean
 
   sh -c 'make clean'
 echo all
 all
 
   sh -c 'echo clean'
 clean
 
 So there is no way to use make recursively or to run it from within a 
 shell script or a Makefile, because it does not recognize any option, 
 switch or target.

I cannot reproduce this, neither with a MinGW build of Make 3.80 nor
with Make 3.81, but then I don't use the MSYS port of Bash as the
shell.

 Is there anything I can do? It is obviously a problem of make and not of sh.

``Obvioulsy''?  I wouldn't say that, since make clean from the shell
prompt works just fine.  I'd rather think that it's some
incompatibility between Make and the shell you are using.  Perhaps
asking on the MSYS mailing list would help.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Inconsistent behaviour when building in parallel

2007-01-21 Thread Eli Zaretskii
 From: Dirk Heinrichs [EMAIL PROTECTED]
 Date: Sat, 20 Jan 2007 22:22:04 +0100
 
 So the left hand doesn't know what the right hand does?

??? Would you care to explain where do you see two hands that don't
know each what the other one does?

As far as I see from Paul's clear description is that Make does the
same thing in both situations.

What would you expect Make to do in each case?

  In the parallel case you can't tell exactly what will happen: it depends
  on your system; how busy it is, what order the various jobs are
  scheduled by the OS, how long the command takes to execute, etc.  It
  could work perfectly, or it could be run twice, or more times (if there
  are more than two targets).
 
 That's even worse.

Really? why?

I'm sure you are familiar with the notion of multi-tasking or
multi-threading, and know that independent parallel execution threads
are much less deterministic than sequential single-threaded ones.
While that is a fact of life, this is the first time I hear someone
say that it is such a bad thing.

Anyway, you can always use -j1 if you don't want parallelism.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #18872] problem colon after drive letter in prerequisite

2007-01-24 Thread Eli Zaretskii

Follow-up Comment #1, bug #18872 (project make):

You are using the Cygwin build of Make 3.81, which does not support drive
letters in file names (I believe the announcement on the Cygwin mailing list
at the time they released Make 3.81 explains why they discontinued support
for drive letters.)

I suggest to try the patched version of Cygwin Make 3.81, from the URL you
cited:

http://cygwin.com/ml/cygwin/2006-09/msg00153.html

That version should support drive letters in file names.

FWIW, the native (non-Cygwin) Windows build of Make 3.81 behaves as you
expect:

make: *** No rule to make target `c:/myfile.txt', needed by `all'.  Stop.

The above-mentioned patched Cygwin build uses the same code for drive letter
support as the native build, so I have good reasons to believe your problems
will be solved once you use the patched version.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?18872

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: BUG while running the make file

2007-02-07 Thread Eli Zaretskii
 Date: Wed, 7 Feb 2007 11:51:56 -0500
 From: Raheja, Himanshu [EMAIL PROTECTED]
 
 gcc -I.. -I. -I./include -I./common -D_FILE_OFFSET_BITS=64
 -I/usr/include -g -W -Wall -Werror -Wno-unused -g -O2
 -D_FILE_OFFSET_BITS=64 -g -W -Wall -Werror -Wno-unused -DHAVE_CONFIG_H
 -c ./common/linksupport.c -o linksupport.o
 
 /tmp/ccsjrIuh.s: Assembler messages:
 
 /tmp/ccsjrIuh.s:1368: Error: Incorrect register `%rax' used with `l' suffix
 
 /tmp/ccsjrIuh.s:1617: Error: Incorrect register `%rax' used with `l' suffix
 
 make[1]: *** [linksupport.lo] Error 1

This has nothing to do with Make: the error message comes from the
assembler invoked by the compiler (GCC).  So either your compiler is
misconfigured, or maybe linksupport.c has some invalid inline assembly
in it.  In any case, you should take it up with whoever maintains
LPRng.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: automake-1.10 can't work with make-3.81 in Mingw in Windows XP

2007-02-24 Thread Eli Zaretskii
 Date: Sat, 24 Feb 2007 18:04:28 +0800 (CST)
 From: haibin zhang [EMAIL PROTECTED]
 Cc: 
 
 Hi all:
 automake-1.10 can't work with make-3.81 in Mingw in Windows XP, but 
 automake-1.9.6 can work with make-3.81. 
 
 I tested that automake-1.10 can work with make-3.79.1 in Mingw in Windows XP.
 
 The result :
 automake-1.9.6 and make-3.81- fine
 automake-1.10  and make-3.79.1 - fine
 automake-1.10  and make-3.81   - bad(X)
 
 
 if I use make-3.81 with automake-1.10, it occur error:
 
 make[2]: Leaving directory `e:/zhb_svn/mingw/build/hbstock_build/src'
 Making all in test
 make[2]: Entering directory `e:/zhb_svn/mingw/build/hbstock_build/test'
 g++ -DHAVE_CONFIG_H -I. -I.. -I../../../hbstock/test  -Wall -D_MINGW32_ 
 -D_WIN32_  -I/opt/ace/include -I/opt/cppunit/include 
 -I../../../hbstock/include -O2 -MT unitTest.o -MD -MP -MF .deps/unitTest.Tpo 
 -c -o unitTest.o ../../../hbstock/test/unitTest.cpp
 ../../../hbstock/test/unitTest.cpp:2:52: 
 cppunit/extensions/TestFactoryRegistry.h: No such file or directory
 ../../../hbstock/test/unitTest.cpp:3:40: cppunit/ui/text/TestRunner.h: No 
 such file or directory
 
 I don't know what's happen ? could you help me ?

Do the files it complains about actually exist?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: timestamp resolution

2007-05-04 Thread Eli Zaretskii
 Date: Thu, 3 May 2007 23:20:31 +0100
 From: James Youngman [EMAIL PROTECTED]
 Cc: bug-make@gnu.org,
   [EMAIL PROTECTED] [EMAIL PROTECTED]
 
 [ CC += bug-make@gnu.org ]
 
 On 5/3/07, Ulrich Drepper [EMAIL PROTECTED] wrote:
  On today's call we agreed on the following proposal (names are negotiable):
 
  1. add _PC_TIMESTAMP_RESOLUTION
 
 [ for those recently joining, this would be a pathconf() configuration
 option which returns the filesystem timestamp resolution for a given
 file. ]
 
 Is the assumption then that all filesystems record timestamps as
 values of the form
 (Epoch + N *  pathconf(_PC_TIMESTAMP_RESOLUTION)), where Epoch is the
 Unix epoch?
 
 I can't think offhand of an exception.  The difference between the
 MS-DOS epoch and the Unix epoch is evenly divisible by 2 seconds (I
 think; though there were 9 leap seconds in the 1970s, hmm...).  But
 might there be an exception I can't immediately recall?  Quite
 probably.

Could you please explain why did you CC the bug-make list, and why you
mention MS-DOS?  The above addition to `pathconf', when introduced,
will be only supported on systems that use glibc, is that right?  So
MS-DOS is not relevant, even if GNU Make uses _PC_TIMESTAMP_RESOLUTION.

Btw, the Windows epoch (on NTFS volumes) is 1601.  But that probably
doesn't matter, either, as glibc is not used.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Build warnings in CVS make 3.81.90

2007-05-12 Thread Eli Zaretskii
 From: Paul Smith [EMAIL PROTECTED]
 Date: Fri, 11 May 2007 15:15:34 -0400
 Cc: GNU Make bug-make@gnu.org
 
  function.c: In function 'func_shell':
  function.c:1597: warning: variable 'error_prefix' might be clobbered by 
  'longjmp' or 'vfork'
  function.c:1589: warning: argument 'o' might be clobbered by 'longjmp' 
  or 'vfork'
 
 These have been around forever and I don't know how to fix them.  If you
 do, please let me know.

I think adding the `volatile' qualifier to the declarations of these
variables will make the warning go away.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20550] Crash with setting SHELL from the commandline

2007-07-21 Thread Eli Zaretskii

Follow-up Comment #1, bug #20550 (project make):

Thanks.  I believe this was already reported, and the attached patch (already
sent to the maintainer) should fix it.


(file #13412)
___

Additional Item Attachment:



___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20550

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20549] make -n doesn't work recursively

2007-07-21 Thread Eli Zaretskii

Follow-up Comment #1, bug #20549 (project make):

Thanks.  I believe the attached patch should take care of this bug.  Does
it?


(file #13414)
___

Additional Item Attachment:



___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20549

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20550] Crash with setting SHELL from the commandline

2007-07-21 Thread Eli Zaretskii

Follow-up Comment #3, bug #20550 (project make):

Did you try to patch the current CVS?  Because I'm not even sure it compiles
on Windows (never tried it myself), and the place GCC complains doesn't seem
to have anything in common with the patch I sent.

Anyway, can we take this to the mailing list?  The bug tracker is not a good
medium for this kind of discussion, and makes it a pain to attach files and
view them.  [EMAIL PROTECTED] or [EMAIL PROTECTED] is a much better
place.  [EMAIL PROTECTED] is specific to the Windows port, and might be even a
better place.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20550

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20549] make -n doesn't work recursively

2007-07-21 Thread Eli Zaretskii

Follow-up Comment #3, bug #20549 (project make):

Your report was relative to Make 3.81, and the diffs are relative to that
version.  I don't track the CVS, and am not even sure it compiles on
Windows.

Please, let's continue discussing this on one of the Make mailing lists
([EMAIL PROTECTED], [EMAIL PROTECTED], bug-make@gnu.org).


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20549

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20550] Crash with setting SHELL from the commandline

2007-07-21 Thread Eli Zaretskii

Follow-up Comment #4, bug #20550 (project make):

Sorry, I meant bug-make, not bug-gnu-emacs, of course.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20550

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: problem with GNU make configure

2007-08-03 Thread Eli Zaretskii
 Date: Fri, 3 Aug 2007 14:52:53 -0700 (PDT)
 From: [EMAIL PROTECTED]
 
 I am trying to configure GNU make from cygwin and ./configure doesn't run.
 I have attached the cygwin console capture with the error.

I see no attachments.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: problem with GNU make configure

2007-08-03 Thread Eli Zaretskii
 Date: Fri, 3 Aug 2007 14:55:15 -0700 (PDT)
 From: [EMAIL PROTECTED]
 
 oops, here is the attached console capture

It's much better to send this as plain text (you can capture it with
`tee' or even by copying and pasting the contents into your mailer).

My crystal ball says that somehow the configure script god DOS-style
CR-LF line endings, which make Cygwin Bash barf.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-13 Thread Eli Zaretskii
 Date: Sat, 13 Oct 2007 13:59:43 -0400
 From: Christopher Faylor [EMAIL PROTECTED]
 Cc: 
 
 Isn't there a pure MinGW (not msys) version too?

If someone knows where to get it, please tell.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-13 Thread Eli Zaretskii
 From: Paul Smith [EMAIL PROTECTED]
 Date: Sat, 13 Oct 2007 12:37:46 -0400
 Cc: 
 
 I'm considering switching from CVS to another form of SCM.

Can you tell why?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-13 Thread Eli Zaretskii
 From: Benoit SIGOURE [EMAIL PROTECTED]
 Date: Sat, 13 Oct 2007 19:18:42 +0200
 Cc: Make Windows [EMAIL PROTECTED], bug-make bug-make@gnu.org
 
 I frequently read Git's ML and it seems rather stable on Cygwin.

Which for me is a turn-off, because I don't want to install Cygwin.

 The MSYS version should work too, even though I haven't tried it
 personally.

MSYS is just a fork of Cygwin, so it doesn't solve my problem above.

Is there a good native Windows port of GIT?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-13 Thread Eli Zaretskii
 From: Benoit SIGOURE [EMAIL PROTECTED]
 Date: Sat, 13 Oct 2007 20:52:58 +0200
 Cc: bug-make bug-make@gnu.org
 
 On Oct 13, 2007, at 7:59 PM, Christopher Faylor wrote:
 
  Isn't there a pure MinGW (not msys) version too?
 
 
 This sounds unlikely because many commands in git-core are shell  
 scripts (or sometimes Perl scripts) written on top of plumbing commands.

Another turn-off.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-13 Thread Eli Zaretskii
 Cc: Make Windows [EMAIL PROTECTED],
  bug-make bug-make@gnu.org
 From: Benoit SIGOURE [EMAIL PROTECTED]
 Date: Sat, 13 Oct 2007 22:09:56 +0200
 
  Is there a good native Windows port of GIT?
 
 http://git.or.cz/gitwiki/WindowsInstall

Thanks, I already found that page.  However, it sounds like it only
points to the source (is that right?), and I'm not sure what do I do
to download the sources, even if I wanted it.  There's no Download
link that leads me to some tarball or installer.

I'd prefer binaries, as building from sources is notoriously
problematic for MinGW ports of complex packages (they usually need
many tools to be installed and configured before the build will run to
completion, and the setup of those tools is not well documented).  But
I don't see a pointer to a binary distribution.

 Git was designed the way we're used to design traditional UNIX  
 programs: lots of small programs, each performing a simple task.   
 Most of the low level commands (called plumbing) are wrapped up  
 in nicer, higher level interfaces (porcelain), and they happen to  
 be written in Shell script (for many of them at least).  So I don't  
 think you can seriously use Git without having at least a minimal  
 POSIX environment.

Yes, and therein is my gripe: lots of shell scripts means I need a
good port of a Unixy shell and other associated utilities that are
routinely invoked by shell scripts.  I do have these installed, but I
really don't want to stress-test their compatibility each time I need
to commit a change or update my sandbox.

 On the other hand, Git has lots of GUIs, one of which (qgit) is  
 written with Qt.  Therefore, if it was written properly, it ought to  
 work on Windows too (thanks Qt!).  Gitk should also probably work  
 (Tcl/Tk works on Windows AFAIK).  I don't know about git-gui.

I don't think I need to worry about a GUI front end, since Emacs
already supports GIT.  But again, having commands that need a Unixy
shell will make things harder, even with Emacs, because it by default
invokes the stock Windows shell.

That is why I asked Paul why he wanted to switch: Make is not a large
package, and its group of developers is quite small to expose the
problems with CVS.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-14 Thread Eli Zaretskii
 From: Paul Smith [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED], bug-make@gnu.org
 Date: Sun, 14 Oct 2007 12:57:20 -0400
 
 On Sat, 2007-10-13 at 21:10 +0200, Eli Zaretskii wrote:
  Can you tell why?
 
 The main reasons are lack of functionality in CVS re renaming, removing,
 and reorganizing files.  However, it's not a critical issue; I've lived
 with it for this long.  The other problems CVS has (poor branch/merge,
 no atomicity, server-only repositories, etc.) are not as big a problem
 for a project the size of GNU make.

Then perhaps you don't need to switch at all.  Doing so will require a
non-trivial effort; I don't know how your free time, but mine is
hardly enough to try debugging an occasional w32-related bug report.
Is it really worth wasting what few resources we have on switching to
another VCS?

 Another reason others have mentioned is making it simple for
 downstream folks to work on make.  Ideally I'd be happy to hand over
 maintenance of the non-POSIX ports (for example) to others more
 completely, and just pull from their changed trees.

Why not give those who do work on non-POSIX ports write access to the
CVS tree?

 It looks like (as someone else mentioned) SVN may be supported on
 Savannah soonish.  So another option is to wait for that.  I certainly
 don't want to switch more than once, if I do decide to switch.

SVN certainly sounds as easier for use on Windows than GIT.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: possible memory leak in make 3.81

2007-10-15 Thread Eli Zaretskii
 Date: Mon, 15 Oct 2007 20:12:37 +0100
 From: Jon Grant [EMAIL PROTECTED]
 Cc: bug-make@gnu.org
 
 Paul Smith wrote on 14/10/07 22:17:
  On Sun, 2007-10-14 at 18:33 +0100, Jon Grant wrote:
  Do they get free'd up when make exits?
  
  No.  It's quite difficult to do this since the variables are static and
  so are only visible within that function.  In order to free them we'd
  have to add them to some kind of global free list that could be walked
  when make was exiting.  This will take time when all we want to do is
  exit... and anyway, the operating system will take care of cleaning that
  up when we exits.
 
 the OS should cover that, but in some case I wonder if there may be a
 leak left. Would the DOS version for instance result in lost memory the
 OS cannot reallocate?

No.  Even DOS releases all the memory of a process that exited or was
otherwise terminated.  You can only lose memory on DOS if you happen
to corrupt the system memory chain (by writing to bad addresses), but
in that case you will have a system crash almost instantly anyway.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Switching from CVS to GIT

2007-10-15 Thread Eli Zaretskii
 Date: Mon, 15 Oct 2007 13:36:53 -0700
 From: Howard Chu [EMAIL PROTECTED]
 Cc: bug-make@gnu.org, [EMAIL PROTECTED]
 
 IMO the objections to requiring MSYS/Cygwin on Windows made no sense in this 
 discussion.

Believe me, it does make sense to some.  In a nutshell, if you use
Cygwin or MSYS, you are forced to use them, and them alone, as there
are subtle incompatibilities with other kinds of programs that can
drive you up the wall sometimes.

 Make is inherently a POSIX command line tool.

It's no more POSIX that `ls'.  I hope you won't try to claim that `ls'
doesn't make sense outside of a POSIX environment.

 Anybody using it on Windows needs a POSIX environment already
 anyway.

Not really.  Make is just a program to invoke other programs given a
set of rules.  It only (loosely) assumes that those programs produce
files, and doesn't care much about anything else.  Since not only
POSIX tools can produce files, Make does not require a POSIX
environment.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Config.h and pid redefinition...

2007-12-08 Thread Eli Zaretskii
 Date: Sat, 8 Dec 2007 21:18:55 +0100
 From: Alberto Santini [EMAIL PROTECTED]
 
 I compiled make 3.81 on Windows box Vista using MingW - gcc (GCC)
 4.2.1-sjlj (mingw32-2).
 
 I modified config.h.W32 commenting the line 412:
 #define pid_t int
 
 So it would be better to add a conditional definition because there is
 a difference between gcc 3.4.x and gcc 4.2.1.

Could you please explain what is that difference?  Does GCC 4.2.1
somehow define pid_t internally?

Thanks.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Invalid opton --B

2007-12-10 Thread Eli Zaretskii
 Date: Mon, 10 Dec 2007 17:07:36 -0800
 From: Anand, CJ [EMAIL PROTECTED]
 
 The command we use is
 
 make OS=nto CPULIST=x86 -B install LDFLAGS=-M
 
 The error we get is
 
 make: invalid option - B

What does make --version say?


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Config.h and pid redefinition...

2007-12-15 Thread Eli Zaretskii
 Date: Sat, 15 Dec 2007 18:23:55 +0100
 From: Alberto Santini [EMAIL PROTECTED]
 Cc: bug-make@gnu.org
 
  Thanks.  Could you please try the patch below, and see if it fixes
  your original problem?
 
 No, it doesn't work, because config.h (see make.h, for instance) is
 loaded before sys/types.h

Yes, that was silly of me.  How about the patch below, then?

 I think the solution is using GCC_VERSION. :(

I don't want to use GCC_VERSION, because then I'd need to know exactly
which version started defining pid_t.

2007-12-15  Eli Zaretskii  [EMAIL PROTECTED]

* config.h.W32: Include sys/types.h.
[!_PID_T_] (pid_t): Define only if not already defined.

--- config.h.W32~0  2006-04-01 12:42:38.0 +0300
+++ config.h.W322007-12-16 06:13:06.03550 +0200
@@ -405,11 +405,16 @@
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
 
+#include sys/types.h
+
 /* Define to `int' if sys/types.h doesn't define. */
 #define gid_t int
 
 /* Define to `int' if sys/types.h does not define. */
+/* GCC 4.x reportedly defines pid_t.  */
+#ifndef _PID_T_
 #define pid_t int
+#endif
 
 /* Define to `int' if sys/types.h doesn't define. */
 #define uid_t int


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Config.h and pid redefinition...

2007-12-15 Thread Eli Zaretskii
 Date: Sun, 9 Dec 2007 09:49:55 +0100
 From: Alberto Santini [EMAIL PROTECTED]
 
   I modified config.h.W32 commenting the line 412:
   #define pid_t int
  
   So it would be better to add a conditional definition because there is
   a difference between gcc 3.4.x and gcc 4.2.1.
 
  Could you please explain what is that difference?  Does GCC 4.2.1
  somehow define pid_t internally?
 
 In sys/types.h (line 75 - 4.2.1) we have
 
 #ifndef _PID_T_
 #define   _PID_T_
 typedef int   _pid_t;
 
 #ifndef   _NO_OLDNAMES
 typedef _pid_tpid_t;
 #endif
 #endif/* Not _PID_T_ */

Thanks.  Could you please try the patch below, and see if it fixes
your original problem?

2007-12-15  Eli Zaretskii  [EMAIL PROTECTED]

* config.h.W32 [!_PID_T_] (pid_t): Define only if not already
defined.

--- config.h.W32~0  2006-04-01 12:42:38.0 +0300
+++ config.h.W322007-12-15 15:54:35.598803300 +0200
@@ -409,7 +409,10 @@
 #define gid_t int
 
 /* Define to `int' if sys/types.h does not define. */
+/* GCC 4.x reportedly defines pid_t.  */
+#ifndef _PID_T_
 #define pid_t int
+#endif
 
 /* Define to `int' if sys/types.h doesn't define. */
 #define uid_t int


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Config.h and pid redefinition...

2007-12-16 Thread Eli Zaretskii
 Date: Sun, 16 Dec 2007 11:08:41 +0100
 From: Alberto Santini [EMAIL PROTECTED]
 Cc: bug-make@gnu.org
 
 I confirm you the patch works fine.
 
  2007-12-15  Eli Zaretskii  [EMAIL PROTECTED]
 
 * config.h.W32: Include sys/types.h.
 [!_PID_T_] (pid_t): Define only if not already defined.

Thanks for testing.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Fixing broken djgpp support in make 3.81

2007-12-22 Thread Eli Zaretskii
 From: Juan Manuel Guerrero [EMAIL PROTECTED]
 Date: Thu, 15 Nov 2007 05:39:46 +0100
 Cc: 
 
 I have appended a small patch that shows the things I had to change to get a
 working make binary.  That patch is not intended to be used.  It shall only
 show the code lines that may need to be adjusted to solve the problems.  There
 may be better ways to solve the issue, but I am not familiar enough with the
 make sources to provide a better patch.  There may be also much more MSDOS or
 DJGPp specific things that may be fixed.  The patch only fixes things that I 
 am
 aware.  Things that may cause trouble are drive letters, checks for absolute
 patch, etc, etc etc.  The usual DOS/WINDOWS things.

Thanks, Juan.  Your warnings notwithstanding, I did install your
patches.  I no longer have time to do any significant work on the
DJGPP port of Make, so installing your changes will at least give
DJGPP users a binary that works better than with the original sources.

 I have not waiste my time trying to fix the Makefile.DOS, but now that 
 make.texi
 has been moved into /doc it needs to be adjusted accordingly.  It would be 
 nice
 if rules for dvi, ps, pdf and html could be added.  It would also be usefull
 not to split the MSDOS version of make.info anymore.  The extensions 
 .info-[0-9]
 are changed to .i[0-9] to acomplish with the 8.3 file name rule but it is 
 always
 forgotten to adjust the file name strings in make.info accordingly.  All this
 difficulties can be avoided by no spliting the info formated docs anymore.

Please note that dvi and ps are already supported, and pdf is not
supported on any platform.  I made all the other changes you
suggested; please see the patches below.

Thanks again for your efforts supporting DJGPP ports in general, and
Make in particular.

2007-12-22  Eli Zaretskii  [EMAIL PROTECTED]

Suggested by Juan Manuel Guerrero [EMAIL PROTECTED]:

* Makefile.DOS.template (info_TEXINFOS): Remove unused variable.
(TEXINFOS): Value changed to `doc/make.texi'.
(.SUFFIXES): Use .texi instead of .texinfo.
(make.info, make.dvi): Depend on doc/make.texi.
(.texi.info): New target, instead of .texinfo.info.  Change -I
switch to $(MAKEINFO) to look in doc/.  Use --no-split.
(.texi): New target, instead of .texinfo.  Change -I switch to
$(MAKEINFO) to look in doc/.  Use --no-split.
(.texi.dvi): New target, instead of .texinfo.dvi.  Change -I
switch to $(MAKEINFO) to look in doc/.
(install-info-am, uninstall-info): Don't look for *.i[0-9] and
*.i[0-9][0-9] (due to --no-split above).
(noinst_TEXINFOS, TEXI2HTML, TEXI2HTML_FLAGS): New variables.
(html, make_1.html): New targets.
(.PHONY): Add html.
(.SUFFIXES): Add .html.


Index: Makefile.DOS.template
===
RCS file: /sources/make/make/Makefile.DOS.template,v
retrieving revision 2.15
diff -u -r2.15 Makefile.DOS.template
--- Makefile.DOS.template   4 Jul 2007 19:35:16 -   2.15
+++ Makefile.DOS.template   22 Dec 2007 12:04:40 -
@@ -83,7 +83,6 @@
 libglob_a_SOURCES =%GLOB_SOURCES%
 make_LDADD = glob/libglob.a
 
-info_TEXINFOS =make.texinfo
 man_MANS = make.1
 
 INCLUDES = -I$(srcdir)/glob -DLIBDIR=\c:/djgpp/lib\ 
-DINCLUDEDIR=\c:/djgpp/include\ -DLOCALEDIR=\$(localedir)\
@@ -118,10 +117,14 @@
 TEXINFO_TEX = $(srcdir)/config/texinfo.tex
 INFO_DEPS = make.info
 DVIS = make.dvi
-TEXINFOS = make.texinfo
+TEXINFOS = doc/make.texi
+noinst_TEXINFOS = doc/fdl.texi doc/make-stds.texi
 man1dir = $(mandir)/man1
 MANS = $(man_MANS)
 
+TEXI2HTML = texi2html
+TEXI2HTML_FLAGS = -split_chapter
+
 NROFF = nroff
 DIST_COMMON =  README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL Makefile.am  
Makefile.in NEWS acconfig.h aclocal.m4 alloca.c build.sh-in config.h-in  
configure configure.in getloadavg.c
 
@@ -136,7 +139,7 @@
 default: all
 
 .SUFFIXES:
-.SUFFIXES: .c .dvi .info .o .obj .ps .texinfo .tex
+.SUFFIXES: .c .dvi .info .o .obj .ps .texi .tex .html
 
 mostlyclean-hdr:
 
@@ -186,33 +189,41 @@
@command.com /c if exist make.exe del make.exe
$(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS)
 
-make.info: make.texinfo
-make.dvi: make.texinfo
+# Documentation
+
+make.info: doc/make.texi
+make.dvi: doc/make.texi
 
 
 DVIPS = dvips
 
-.texinfo.info:
+.texi.info:
@command.com /c if exist make.info* del make.info*
@command.com /c if exist make.i* del make.i*
-   $(MAKEINFO) -I$(srcdir) $ -o ./$@
+   $(MAKEINFO) -I$(srcdir)/doc --no-split $ -o ./$@
 
-.texinfo:
+.texi:
@command.com /c if exist make.info* del make.info*
@command.com /c if exist make.i* del make.i*
-   $(MAKEINFO) -I$(srcdir) $ -o ./$@
-
-.texinfo.dvi:
-   TEXINPUTS=$(srcdir);$$TEXINPUTSMAKEINFO='$(MAKEINFO) -I 
$(srcdir)' $(TEXI2DVI) $
+   $(MAKEINFO) -I$(srcdir)/doc --no-split $ -o

Re: GNU make to consider files checksum

2008-04-12 Thread Eli Zaretskii
 From: Giuseppe Scrivano [EMAIL PROTECTED]
 Date: Fri, 11 Apr 2008 23:45:02 +0200
 
 Other systems like scons already support this feature and it would be
 great to have it for GNU Make too.
 
 I attached a patch against the current CVS to add --use-checksum to
 GNU Make, it is just a proof-of-concept but it shows that adding this
 feature can really boost a remake.

Thanks.  (I'm not the head maintainer, so please wait for Paul and
others to respond.)

 +int
 +compute_checksum(struct file *new)
 +{
 +  int checksum = 0;
 +  FILE *f;
 +  char buffer [4096];
 +  
 +  f = fopen (new-name, r);

This needs to use rb, not r.

Also, what about directories? they cannot be fopen'ed and fread, at
least not on all supported systems.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make version

2008-04-17 Thread Eli Zaretskii
 Date: Thu, 17 Apr 2008 16:51:47 +0100
 From: ying [EMAIL PROTECTED]
 
 Sorry to bother you. When I installed the mingw and msys the current 
 make version is 3.79.1. I tried to install the make 3.80 and cover the 
 previous min-make file. Unfortunately no matter what I did the version 
 is always 3.79. So could you give me any help?

Try uninstalling the old version before installing a newer one.  Run
the Settings-Control Panel-Add or Remove Programs applet, and follow
the prompts.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make-3.81: bug-report: function abspath works incorrectly on widows

2008-06-25 Thread Eli Zaretskii
 Date: Wed, 25 Jun 2008 20:19:39 +0400
 From: Vitaly Murashev [EMAIL PROTECTED]
 
 I found a bug in GNU Make 3.81 on MS Windows. So let me discuss it and
 suggest a patch.

Thanks.  Your code is generally OK, but, unless I'm missing something,
it has a few deficiencies:

  . It doesn't add an explicit drive letter to file names such as
/foo/bar, and generally treats such names incorrectly.

  . It doesn't produce fully qualified file names from drive-relative
names such as d:foo/bar.

  . It assumes Windows file names use only `/' as directory separator
character, while in reality there could be `\' as well.

Apologies if I misread your patch (I didn't really try to apply and
use it).

Thanks again for working on this.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make-3.81: bug-report: function abspath works incorrectly on widows

2008-06-26 Thread Eli Zaretskii
 Date: Thu, 26 Jun 2008 14:44:38 +0400
 From: Vitaly Murashev [EMAIL PROTECTED]
 Cc: bug-make@gnu.org
 
   . It doesn't add an explicit drive letter to file names such as
 /foo/bar, and generally treats such names incorrectly.
 
 You are right, and i suppose that the best way is to keep original GNU
 Make behavior intact for this case.
 E.g. /foo/bar must be treated as full qualified path even on MS Windows.

No, I think it should prefix the drive letter of the current disk.

   . It doesn't produce fully qualified file names from drive-relative
 names such as d:foo/bar.
 
 Not really. My patch produces the same output for d:foo/bar
 and for d:/foo/bar, the result is d:/foo/bar

Yes, but d:foo/bar and d:/foo/bar are not the same thing.  The
former refers to the current directory on drive d:, which could be
different from the root.

   . It assumes Windows file names use only `/' as directory separator
 character, while in reality there could be `\' as well.
 
 Yes, it does, but before my patch it assumes the same. And as i can
 understand it is a common behavior for GNU Make.

No, GNU Make supports both types of slashes.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Reimplementing DJGPP support for make.

2008-06-30 Thread Eli Zaretskii
 From: Juan Manuel Guerrero [EMAIL PROTECTED]
 Date: Mon, 30 Jun 2008 10:12:24 +0200
 
 A couple of months ago I presented a patch to implement DJGPP/MSDOS support
 in make again.  Now that the legal paperwork has been signed and submitted
 I resent an improved patch again.  The patch is based on today's CVS head.

Thanks, I will take good care of this when I have time (which might
take a while).

Thanks for your relentless and long-time support of DJGPP.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: BATCH_MODE_ONLY_SHELL configuration fails with unixy shells

2008-09-30 Thread Eli Zaretskii
 From: Russo, David [EMAIL PROTECTED]
 Date: Mon, 29 Sep 2008 14:21:59 -0500
 
 There seems to be a bug in make 3.81 when make is configured with 
 BATCH_MODE_ONLY_SHELL enabled.  The problem only occurs when 
 BATCH_MODE_ONLY_SHELL is enabled, make determines the shell is unixy, and a 
 recipe has a continuation line.
 
 If make determines that the shell is unixy, the generated shell script used 
 to run a rule containing a continuation character will have one too many 
 '\'s.  For example, the following makefile fails:
 
 all:
 echo this is\
 a test
 
 because the generated batch file used to run the echo command above is:
 
 echo this is\\
 a test
 
 This results in two commands being executed (by unixy shells); echo and 
 a.  Clearly not what was intended.
 
 If I'm not mistaken, the fix is quite simple and I've attached a patch to a 
 description of the problem here: http://savannah.gnu.org/bugs/?24405.  I'd 
 appreciate any review/comments of the bug and the patch.

Thanks, I installed your changes in the Make CVS.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: Fw: error 127

2008-10-11 Thread Eli Zaretskii
 Date: Sat, 11 Oct 2008 02:03:27 -0700 (PDT)
 From: Uygar UZUNHASAN [EMAIL PROTECTED]
 
 g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB 
 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED 
 -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore 
 -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtNetwork 
 -I/usr/qt/4/include/QtNetwork -I/usr/qt/4/include/QtGui 
 -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtSql -I/usr/qt/4/include/QtSql 
 -I/usr/qt/4/include -I. -I. -I. -o _tools.o _tools.cpp
 make: g++: Command not found
 make: *** [_tools.o] Error 127

You don't have the g++ program, the GNU C++ compiler.  Error 127 means
the g++ command was not found.

You need to install the GNU C++ compiler.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: bug

2008-10-14 Thread Eli Zaretskii
 Date: Tue, 14 Oct 2008 11:45:43 +0800
 From: =?gb2312?B?Q2Fzc2llIFh1KNDsytjIQSkoQkop?= [EMAIL PROTECTED]
 
 This program built for i686-pc-mingw32
 
 Report bugs to bug-make@gnu.org
 
 make[1]: *** [stfdma.lib] Error 2
 
 make[1]: Leaving directory `D:/SW/5105_5107SingFTABETA3_rc_test/src/objs/ST20'

This means Make did not find some file that was needed to build
stfdma.lib.  But without seeing the corresponding Makefile fragment
and the commands that were run, it is impossible to guess what was the
cause of this failure.

 原来的电脑编译是正确的,为什么现在一编译就有错误呢?请指教~

Sorry, I don't understand this.



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20495] debug version crashes on windows on close(-1)

2009-03-07 Thread Eli Zaretskii

Additional Item Attachment, bug #20495 (project make):

File name: w32clospipe.difSize:0 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?20495

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17277] Pathes longer than 128 Chars fail with make under windows

2009-03-14 Thread Eli Zaretskii

Follow-up Comment #2, bug #17277 (project make):

Fixed with the attached patch (which also fixes bug #25662).


(file #17686)
___

Additional Item Attachment:

File name: w32searchpath.dif  Size:5 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?17277

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #17277] Pathes longer than 128 Chars fail with make under windows

2009-03-14 Thread Eli Zaretskii

Update of bug #17277 (project make):

  Status:None = Fixed  


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?17277

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25662] PATH (sometimes) not set when set from target-variable

2009-03-14 Thread Eli Zaretskii

Follow-up Comment #1, bug #25662 (project make):

Fixed with the attached patch (which also fixes bug #17277).


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25662

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25662] PATH (sometimes) not set when set from target-variable

2009-03-14 Thread Eli Zaretskii

Update of bug #25662 (project make):

  Status:None = Fixed  
 Open/Closed:Open = Closed 
   Fixed Release:None = CVS


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25662

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25662] PATH (sometimes) not set when set from target-variable

2009-03-14 Thread Eli Zaretskii

Update of bug #25662 (project make):

 Open/Closed:  Closed = Open   


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25662

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25662] PATH (sometimes) not set when set from target-variable

2009-03-14 Thread Eli Zaretskii

Additional Item Attachment, bug #25662 (project make):

File name: w32searchpath.dif  Size:5 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25662

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25412] mingw32-make crashes when double quotes at end of PATH

2009-03-14 Thread Eli Zaretskii

Follow-up Comment #1, bug #25412 (project make):

Fixed with the attached patch.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25412

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #25412] mingw32-make crashes when double quotes at end of PATH

2009-03-14 Thread Eli Zaretskii

Update of bug #25412 (project make):

 Open/Closed:Open = Closed 


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?25412

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #26075] $(wildcard) function holds parent directories open preventing deletes

2009-04-03 Thread Eli Zaretskii
 From: Peter Halliday invalid.nore...@gnu.org
 Date: Fri, 03 Apr 2009 13:28:36 +
 Cc: 
 
 I think I have a fix for this issue (at least it's working for me with my
 makefiles). I have edited dir.c to limit the maximum number of open
 directories under windows to just 1 (normally it is 10) this results in
 directories being closed straight away after caching contents.

Thanks, but I hope there is a less Draconian solution to this bug.  I
will have a look when I have time.


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


  1   2   3   4   5   6   7   8   >