From: Eran I. <era...@gm...> - 2012-08-23 14:42:43
|
Hello, It seems that mingw32-make only partially supports the $(MAKE) variable For example, if I want to run make with multiple jobs (-jN) from within a makefile, I usually write something like this: subdir: cd subdir && $(MAKE) -f Makefile.mk Now if I execute the makefile from the command line under Linux like this: make -j4 -f Makefile.mk $(MAKE) will contain "make -j4" While under Windows / CMD.EXE - *no* MSYS, it seems that $(MAKE) is forcing "-j 1" I tried overriding this behavior using MAKEFLAGS and also setting MAKEOVERRIDES = as described here: http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html with no luck... I can force it by changing the "subdir" target in the makefile to something like: subdir: cd subdir && mingw32-make -j4 -f Makefile.mk and it will work. However, I prefer not doing this. What am I am missing here? My make version is 3.82, installed with mingw-get (great tool btw) ---- Eran Ifrah Author of codelite a cross platform open source C/C++ IDE: http://www.codelite.org |
From: niXman <i.n...@gm...> - 2012-08-23 14:54:01
|
2012/8/23 Eran Ifrah: > > Hello, > > It seems that mingw32-make only partially supports the $(MAKE) variable > > For example, if I want to run make with multiple jobs (-jN) from within a > makefile, I usually write something like this: > > subdir: > cd subdir && $(MAKE) -f Makefile.mk > > Now if I execute the makefile from the command line under Linux like this: > > make -j4 -f Makefile.mk > > $(MAKE) will contain "make -j4" > > While under Windows / CMD.EXE - *no* MSYS, > > it seems that $(MAKE) is forcing "-j 1" > > I tried overriding this behavior using MAKEFLAGS and also setting > MAKEOVERRIDES = > as described here: > http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html > > with no luck... > > I can force it by changing the "subdir" target in the makefile to something > like: > > subdir: > cd subdir && mingw32-make -j4 -f Makefile.mk > > and it will work. > > However, I prefer not doing this. > > What am I am missing here? > > My make version is 3.82, installed with mingw-get (great tool btw) Hi, make is build without job server support. In my builds make is builded with job server support. -- Regards, niXman ___________________________________________________ Dual-target(32 & 64 bit) MinGW compilers for 32 and 64 bit Windows: http://sourceforge.net/projects/mingwbuilds/ |
From: Eran I. <era...@gm...> - 2012-08-23 16:19:34
|
On Thu, Aug 23, 2012 at 5:53 PM, niXman <i.n...@gm...> wrote: > 2012/8/23 Eran Ifrah: > > > > Hello, > > > > It seems that mingw32-make only partially supports the $(MAKE) variable > > > > For example, if I want to run make with multiple jobs (-jN) from within a > > makefile, I usually write something like this: > > > > subdir: > > cd subdir && $(MAKE) -f Makefile.mk > > > > Now if I execute the makefile from the command line under Linux like > this: > > > > make -j4 -f Makefile.mk > > > > $(MAKE) will contain "make -j4" > > > > While under Windows / CMD.EXE - *no* MSYS, > > > > it seems that $(MAKE) is forcing "-j 1" > > > > I tried overriding this behavior using MAKEFLAGS and also setting > > MAKEOVERRIDES = > > as described here: > > > http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html > > > > with no luck... > > > > I can force it by changing the "subdir" target in the makefile to > something > > like: > > > > subdir: > > cd subdir && mingw32-make -j4 -f Makefile.mk > > > > and it will work. > > > > However, I prefer not doing this. > > > > What am I am missing here? > > > > My make version is 3.82, installed with mingw-get (great tool btw) > > Hi, > > make is build without job server support. > In my builds make is builded with job server support. > > > Thanks, your build of make 3.82.90 - did the trick Is there a chance to get jobserver support in the official mingw builds? > -- > Regards, > niXman > ___________________________________________________ > Dual-target(32 & 64 bit) MinGW compilers for 32 and 64 bit Windows: > http://sourceforge.net/projects/mingwbuilds/ > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > This list observes the Etiquette found at > http://www.mingw.org/Mailing_Lists. > We ask that you be polite and do the same. Disregard for the list > etiquette may cause your account to be moderated. > > _______________________________________________ > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > Also: mailto:min...@li...?subject=unsubscribe > -- Eran Ifrah Author of codelite, a cross platform open source C/C++ IDE: http://www.codelite.org |
From: Earnie B. <ea...@us...> - 2012-08-23 16:17:24
|
On Thu, Aug 23, 2012 at 10:42 AM, Eran Ifrah wrote: > > Hello, > > It seems that mingw32-make only partially supports the $(MAKE) variable > > For example, if I want to run make with multiple jobs (-jN) from within a > makefile, I usually write something like this: > IIRC, we do not distribute mingw32-make with the ability to support more than one job. Does job support work for a native windows make? I know the MSYS make supports it. -- Earnie -- https://sites.google.com/site/earnieboyd |
From: niXman <i.n...@gm...> - 2012-08-23 16:21:50
|
2012/8/23 Earnie Boyd: > Does job support work for a native windows make? yes. -- Regards, niXman ___________________________________________________ Dual-target(32 & 64 bit) MinGW compilers for 32 and 64 bit Windows: http://sourceforge.net/projects/mingwbuilds/ |
From: Eran I. <era...@gm...> - 2012-08-23 16:23:04
|
On Thu, Aug 23, 2012 at 7:17 PM, Earnie Boyd <ea...@us...>wrote: > On Thu, Aug 23, 2012 at 10:42 AM, Eran Ifrah wrote: > > > > Hello, > > > > It seems that mingw32-make only partially supports the $(MAKE) variable > > > > For example, if I want to run make with multiple jobs (-jN) from within a > > makefile, I usually write something like this: > > > > IIRC, we do not distribute mingw32-make with the ability to support > more than one job. Does job support work for a native windows make? > I know the MSYS make supports it. > > If by "native windows make" you mean executing mingw32-make under CMD.EXE than the answer is yes. The only problem is that it does not pass it to it children 'make' processes via the $(MAKE) In case "windows native make" is NMAKE - than the answer is NO, NAMKE does not support multiple jobs. IIRC, MS supports parallel building only using MSBuild or something like that -- > Earnie > -- https://sites.google.com/site/earnieboyd > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > This list observes the Etiquette found at > http://www.mingw.org/Mailing_Lists. > We ask that you be polite and do the same. Disregard for the list > etiquette may cause your account to be moderated. > > _______________________________________________ > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > Also: mailto:min...@li...?subject=unsubscribe > -- Eran Ifrah Author of codelite, a cross platform open source C/C++ IDE: http://www.codelite.org |
From: Eli Z. <el...@gn...> - 2012-08-23 16:30:35
|
> From: Eran Ifrah <era...@gm...> > Date: Thu, 23 Aug 2012 17:42:13 +0300 > > It seems that mingw32-make only partially supports the $(MAKE) variable No, this is documented behavior for any Make that doesn't support the "job server" parallelism. > For example, if I want to run make with multiple jobs (-jN) from within a > makefile, I usually write something like this: > > subdir: > cd subdir && $(MAKE) -f Makefile.mk > > Now if I execute the makefile from the command line under Linux like this: > > make -j4 -f Makefile.mk > > $(MAKE) will contain "make -j4" > > While under Windows / CMD.EXE - *no* MSYS, > > it seems that $(MAKE) is forcing "-j 1" Get the CVS code of Make, build it, and you will see no such problem, because the CVS code already supports job server. In a Make that doesn't support job server, the parent Make cannot control how many jobs will be launched by a sub-Make, so it resets the number to 1. > I tried overriding this behavior using MAKEFLAGS and also setting MAKEOVERRIDES > = > as described here: > http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html > > with no luck... With Make 3.82, you need to set "-jN" in the sub-Make by explicitly mentioning it on the sub-Make command line. |
From: Eran I. <era...@gm...> - 2012-08-23 16:36:58
|
On Thu, Aug 23, 2012 at 7:29 PM, Eli Zaretskii <el...@gn...> wrote: > > From: Eran Ifrah <era...@gm...> > > Date: Thu, 23 Aug 2012 17:42:13 +0300 > > > > It seems that mingw32-make only partially supports the $(MAKE) variable > > No, this is documented behavior for any Make that doesn't support the > "job server" parallelism. > > I wasn't aware that the official make does not support "job server", now that I know this, it makes sense > > For example, if I want to run make with multiple jobs (-jN) from within > a > > makefile, I usually write something like this: > > > > subdir: > > cd subdir && $(MAKE) -f Makefile.mk > > > > Now if I execute the makefile from the command line under Linux like > this: > > > > make -j4 -f Makefile.mk > > > > $(MAKE) will contain "make -j4" > > > > While under Windows / CMD.EXE - *no* MSYS, > > > > it seems that $(MAKE) is forcing "-j 1" > > Get the CVS code of Make, build it, and you will see no such problem, > because the CVS code already supports job server. > > In a Make that doesn't support job server, the parent Make cannot > control how many jobs will be launched by a sub-Make, so it resets the > number to 1. > > I was trying to avoid building make myself. Luckily for me, niXman provided me with a link to a make binary that supports it > > I tried overriding this behavior using MAKEFLAGS and also setting > MAKEOVERRIDES > > = > > as described here: > > > http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html > > > > with no luck... > > With Make 3.82, you need to set "-jN" in the sub-Make by explicitly > mentioning it on the sub-Make command line. > > I know this, I was trying to avoid it. I didn't want to hard code the number of jobs into the Makefile > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > This list observes the Etiquette found at > http://www.mingw.org/Mailing_Lists. > We ask that you be polite and do the same. Disregard for the list > etiquette may cause your account to be moderated. > > _______________________________________________ > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > Also: mailto:min...@li...?subject=unsubscribe > -- Eran Ifrah Author of codelite, a cross platform open source C/C++ IDE: http://www.codelite.org |
From: Keith M. <kei...@us...> - 2012-08-23 17:00:19
|
On 23/08/12 17:29, Eli Zaretskii wrote: > Get the CVS code of Make, build it, and you will see no such problem, > because the CVS code already supports job server. For completeness, could you provide a link, please? I wasn't aware that we maintain a CVS repository for MinGW Make, so I assume you mean your upstream repository? -- Regards, Keith. |
From: Eli Z. <el...@gn...> - 2012-08-23 16:42:35
|
> Date: Thu, 23 Aug 2012 12:17:16 -0400 > From: Earnie Boyd <ea...@us...> > > IIRC, we do not distribute mingw32-make with the ability to support > more than one job. Yes, you do ;-) Parallel execution is supported in the MinGW Make since v3.81. It's just that the "job server" feature was not ported to Windows -- until very recently (it will be included in the next official release). I'm using the CVS build of MinGW Make, where job server is supported, for many months now, and it works beautifully. E.g., I routinely run "make -j8" to build Emacs on my Core i7 box. |
From: Gisle V. <gv...@br...> - 2012-08-23 17:47:38
|
"Eran Ifrah" <era...@gm...> wrote: > In case "windows native make" is NMAKE - than the answer is NO, NAMKE does > not support multiple jobs. IIRC, MS supports parallel building only using > MSBuild or something like that But then again "cl -MP" is so much faster than any GNU make and gcc combo. Give 'cl' a list of src-files and it spawn 4 cl processes on my 4 core CPU. 10 times faster than make+gcc will. Just my $0.02. --gv |
From: Eran I. <era...@gm...> - 2012-08-23 18:17:21
|
On Thu, Aug 23, 2012 at 8:48 PM, Gisle Vanem <gv...@br...> wrote: > "Eran Ifrah" <era...@gm...> wrote: > > > In case "windows native make" is NMAKE - than the answer is NO, NAMKE > does > > not support multiple jobs. IIRC, MS supports parallel building only using > > MSBuild or something like that > > But then again "cl -MP" is so much faster than any GNU make > and gcc combo. Give 'cl' a list of src-files and it spawn 4 cl processes > on my 4 core CPU. 10 times faster than make+gcc will. Just my $0.02. > > Its nice, but you can not specify different command line arguments *per* file - for this reason (and probably others) msbuild.exe exists Not to mention that the reason that I am using MinGW in the first place, is that I don't want to use MS toolchain ;) > --gv > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > This list observes the Etiquette found at > http://www.mingw.org/Mailing_Lists. > We ask that you be polite and do the same. Disregard for the list > etiquette may cause your account to be moderated. > > _______________________________________________ > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > Also: mailto:min...@li...?subject=unsubscribe > -- Eran Ifrah Author of the cross platform, open source C++ IDE: http://www.codelite.org |
From: Eli Z. <el...@gn...> - 2012-08-23 17:57:29
|
> Date: Thu, 23 Aug 2012 18:00:12 +0100 > From: Keith Marshall <kei...@us...> > > On 23/08/12 17:29, Eli Zaretskii wrote: > > Get the CVS code of Make, build it, and you will see no such problem, > > because the CVS code already supports job server. > > For completeness, could you provide a link, please? I wasn't aware that > we maintain a CVS repository for MinGW Make, so I assume you mean your > upstream repository? No, I mean the GNU Make upstream CVS repository. To check out anonymously: cvs -z3 -d:pserver:ano...@cv...:/sources/make co make Sorry for being unclear. |
From: Earnie B. <ea...@us...> - 2012-08-23 19:01:46
|
On Thu, Aug 23, 2012 at 1:57 PM, Eli Zaretskii wrote: >> Date: Thu, 23 Aug 2012 18:00:12 +0100 >> From: Keith Marshall >> >> On 23/08/12 17:29, Eli Zaretskii wrote: >> > Get the CVS code of Make, build it, and you will see no such problem, >> > because the CVS code already supports job server. >> >> For completeness, could you provide a link, please? I wasn't aware that >> we maintain a CVS repository for MinGW Make, so I assume you mean your >> upstream repository? > > No, I mean the GNU Make upstream CVS repository. To check out > anonymously: > > cvs -z3 -d:pserver:ano...@cv...:/sources/make co make > Is there a schedule for the release? -- Earnie -- https://sites.google.com/site/earnieboyd |
From: Keith M. <kei...@us...> - 2012-08-23 19:06:58
|
On 23/08/12 18:57, Eli Zaretskii wrote: >> Date: Thu, 23 Aug 2012 18:00:12 +0100 >> From: Keith Marshall <kei...@us...> >> >> On 23/08/12 17:29, Eli Zaretskii wrote: >>> Get the CVS code of Make, build it, and you will see no such problem, >>> because the CVS code already supports job server. >> >> For completeness, could you provide a link, please? I wasn't aware that >> we maintain a CVS repository for MinGW Make, so I assume you mean your >> upstream repository? > > No, I mean the GNU Make upstream CVS repository. To check out > anonymously: > > cvs -z3 -d:pserver:ano...@cv...:/sources/make co make > > Sorry for being unclear. Thanks. That's the one I meant; I referred to it as "your" upstream repository because I know you are a major contributor to the GNU Make project, (at least, in respect of its Windows capabilities). -- Regards, Keith. |
From: Gisle V. <gv...@br...> - 2012-08-23 18:53:59
|
"Eran Ifrah" <era...@gm...> wrote: > Not to mention that the reason that I am using MinGW in the first place, is > that I don't want to use MS toolchain ;) I use both and love them both. They both have their strong sides. Kudos to MS for offering Visual Express etc. for free. With that and e.g. Qt Creator one can produce professional GUI programs in no time. --gv |
From: Keith M. <kei...@us...> - 2012-08-23 19:14:46
|
On 23/08/12 19:54, Gisle Vanem wrote: > "Eran Ifrah"<era...@gm...> wrote: > >> >Not to mention that the reason that I am using MinGW in the first place, is >> >that I don't want to use MS toolchain;) > I use both and love them both. They both have their strong sides. > Kudos to MS for offering Visual Express etc. for free. But it's not really free, is it, (in any sense other than as in beer)? Did you ever read the EULA? IIRC, you infringe it, if you distribute your product. Where is the source code? Are you entitled to study it, learn from it, copy it, modify it, and subsequently redistribute it? -- Regards, Keith. |
From: Eli Z. <el...@gn...> - 2012-08-23 19:17:47
|
> Date: Thu, 23 Aug 2012 15:01:35 -0400 > From: Earnie Boyd <ea...@us...> > > Is there a schedule for the release? Not that I know of. |
From: Eli Z. <el...@gn...> - 2012-08-23 19:24:12
|
> From: Gisle Vanem <gv...@br...> > Date: Thu, 23 Aug 2012 19:48:54 +0200 > > Give 'cl' a list of src-files and it spawn 4 cl processes > on my 4 core CPU. 10 times faster than make+gcc will. Is it really faster than "make -j4", which will spawn 4 GCC processes? (Actually, if you have 4 cores, the usual recommendation is to use -j6.) |
From: Chris S. <ir0...@gm...> - 2012-08-23 19:37:48
|
On 23 August 2012 15:17, Eli Zaretskii wrote: >> Date: Thu, 23 Aug 2012 15:01:35 -0400 >> From: Earnie Boyd <ea...@us...> >> >> Is there a schedule for the release? > > Not that I know of. That being the case, is it worth me packaging a new mingw32-make based on current CVS? I've been holding off in hopes of an official release. Chris -- Chris Sutcliffe http://emergedesktop.org http://www.google.com/profiles/ir0nh34d |
From: Earnie B. <ea...@us...> - 2012-08-23 19:49:26
|
On Thu, Aug 23, 2012 at 3:37 PM, Chris Sutcliffe wrote: > On 23 August 2012 15:17, Eli Zaretskii wrote: >>> Date: Thu, 23 Aug 2012 15:01:35 -0400 >>> From: Earnie Boyd <ea...@us...> >>> >>> Is there a schedule for the release? >> >> Not that I know of. > > That being the case, is it worth me packaging a new mingw32-make based > on current CVS? I've been holding off in hopes of an official > release. We could distribute it as a preview release. I suppose it would need to not be included in the mingw-get metadata in that case. Keith? -- Earnie -- https://sites.google.com/site/earnieboyd |
From: Keith M. <kei...@us...> - 2012-08-23 21:09:01
|
On 23/08/12 20:49, Earnie Boyd wrote: >> ... is it worth me packaging a new mingw32-make based >> on current CVS? I've been holding off in hopes of an official >> release. > > We could distribute it as a preview release. I suppose it would need > to not be included in the mingw-get metadata in that case. Keith? Well, our current release is 3.82-5, but what is the next upstream release likely to be? If we assume that it might be 3.83, then we could create make-3.83-mingw32-cvs-20120823-1-*.tar.lzma or even make-3.83-mingw32-pre-20120823-1-*.tar.lzma either of which mingw-get would rank as a successor to make-3.82-5-mingw32-*.tar.lzma but as an ancestor of make-3.83-mingw32-*.tar.lzma So, there should be no strong reason for us not advertising it via mingw-get; the burning issue would be the likely upstream version, of which we should proclaim it as a pre-release snapshot. -- Regards, Keith. |
From: Eli Z. <el...@gn...> - 2012-08-23 19:51:09
|
> Date: Thu, 23 Aug 2012 15:37:37 -0400 > From: Chris Sutcliffe <ir0...@gm...> > > On 23 August 2012 15:17, Eli Zaretskii wrote: > >> Date: Thu, 23 Aug 2012 15:01:35 -0400 > >> From: Earnie Boyd <ea...@us...> > >> > >> Is there a schedule for the release? > > > > Not that I know of. > > That being the case, is it worth me packaging a new mingw32-make based > on current CVS? I've been holding off in hopes of an official > release. What are the cons? |
From: Chris S. <ir0...@gm...> - 2012-08-23 21:17:14
|
On 23 August 2012 15:50, Eli Zaretskii wrote: >> Date: Thu, 23 Aug 2012 15:37:37 -0400 >> From: Chris Sutcliffe >> >> On 23 August 2012 15:17, Eli Zaretskii wrote: >> >> Date: Thu, 23 Aug 2012 15:01:35 -0400 >> >> From: Earnie Boyd <ea...@us...> >> >> >> >> Is there a schedule for the release? >> > >> > Not that I know of. >> >> That being the case, is it worth me packaging a new mingw32-make based >> on current CVS? I've been holding off in hopes of an official >> release. > > What are the cons? None, I just typically like to distribute official releases - more of a personal preference thing. Chris -- Chris Sutcliffe http://emergedesktop.org http://www.google.com/profiles/ir0nh34d |
From: Eli Z. <el...@gn...> - 2012-08-24 05:41:19
|
> Date: Thu, 23 Aug 2012 17:17:04 -0400 > From: Chris Sutcliffe <ir0...@gm...> > > On 23 August 2012 15:50, Eli Zaretskii wrote: > >> Date: Thu, 23 Aug 2012 15:37:37 -0400 > >> From: Chris Sutcliffe > >> > >> On 23 August 2012 15:17, Eli Zaretskii wrote: > >> >> Date: Thu, 23 Aug 2012 15:01:35 -0400 > >> >> From: Earnie Boyd <ea...@us...> > >> >> > >> >> Is there a schedule for the release? > >> > > >> > Not that I know of. > >> > >> That being the case, is it worth me packaging a new mingw32-make based > >> on current CVS? I've been holding off in hopes of an official > >> release. > > > > What are the cons? > > None, I just typically like to distribute official releases - more of > a personal preference thing. Mine too. So I would strongly suggest asking Paul Smith, the head maintainer, about his intentions wrt releasing 3.83, before making the decision. That said, I'm using the CVS code for many months, on several different machines, and have yet to see a single problem. |