[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NT multi-tasking issue

From: Paul D. Smith
Subject: Re: NT multi-tasking issue
Date: Thu, 1 Mar 2001 00:46:18 -0500

%% Andre Sihera <address@hidden> writes:

  as> I am experiencing a problem with GNU make on NT. The details of
  as> GNU make are as follows:

First, I will preface by saying that I know little about Windows in
general, and NT in particular.

  as> C:\> make --v
  as> GNU Make version 3.79, by Richard Stallman and Roland McGrath.

You should get a copy of the latest version, 3.79.1.

  as> The version (as downloaded from a GNU mirror site) was 3.79-3

That is not a valid GNU make version.  I don't know what mirror you got
this from, but there is no GNU make version 3.79-3.  I suspect you might
be using the Cygwin version of GNU make; note that this is not identical
to the official GNU make that runs on Windows.

You should contact the Cygwin folks about problems with this version of
GNU make, unless you can reproduce them with the "vanilla" version as
well; thanks!

  as> C:\> set MAKEFLAGS
  as> MAKEFLAGS=--win32 --keep-going --no-builtin-variables

There is no --win32 flag for official GNU make.

  as> 1. If a build rule within a makefile causes the makefile to be re-read
  as>    (e.g. when calculating included file dependencies) then this is
  as>    launched in a separate process from the process that executes
  as>    the final makefile.  The two processes, though, are not
  as>    scheduled properly leaving only one process to finish on return
  as>    of the prompt; Weirdly, the second process then starts itself
  as>    up some time later, probably after another task has been
  as>    started.

I suspect this is due to NT's pathetic excuse for a filesystem.  My
understanding (and again, this is here-say; I don't use Windows myself)
is that certainly FAT, and I'm pretty sure VFAT, and I don't know about
NTFS, only record timestamps with an even value.

  as> 2. The -j option appears to have no effect at all, especially if
  as>    set to one.

Using a -j of one is a no-op.  -j tells you how many jobs make should
start in parallel; if you say one then you get the default behaviour of
make: one job started at a time.  The code in make actually just ignores
the -j option of the value is 1.

  as>    This is possibly connected with the first problem. I
  as>    particularly wanted to use this option to be able to control
  as>    the order in which sub-projects are built, and hence resolve
  as>    inter-project dependencies. Unfortunately, even with a -j
  as>    setting of one, sub-projects still manage to get started in
  as>    parallel with two or three executing simultanously.

If you use -j1 you should get no parallel builds, just as if you use
make with no -j at all you should get no parallel builds.  If you are
getting parallel builds with -j1 or with no -j, then something is
seriously wrong with your make or your makefile.

 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://www.paulandlesley.org/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

[Prev in Thread] Current Thread [Next in Thread]