TL;DR:
On a fresh Windows 10 installation, I installed ARM DS-5 v5.26.2 development tools. I am using its make.exe
to build our project, either from Cygwin command line or from the Eclipse IDE's build settings.
Our Makefile contains the line:
uname_result := $(shell uname -s)
but whenever make
reaches this line, it gets stuck. This happens on bash terminal as well as on Window's command prompt.
UPDATE 3:
After more troubleshooting, it appears that the problem was the DS-5's make
utility itself. I added make
to my Cygwin installation, and used that one instead, and now my builds run OK.
Now the question is why the ARM's version does not work on my Win 10 machine, where it used to work fine on Win 7.
Long version:
I had just went through a clean install of Windows 10 on my work PC, after using Windows 7 for two years on that PC. In the last two days I am going through the process of reinstalling our tools and getting back in shape. Unfortunately, I am now stuck with make
giving me headaches.
We develop embedded firmware using ARM's DS-5 toolset. The project is a Makefile Project, so we do not use the built-in Eclipse builder. In order to build the project outside of the Eclipse environment, I installed Cygwin
for a convenient bash
CLI. Both make
and clang
are a part of the DS-5 installation.
When I run make
on the project's Makefile
form CLI, the execution gets stuck indefinitely.
[... removing a long story following the problem revealing process ...]
After tracking down the source of the problem, I found out that the problem is with this line:
uname_result := $(shell uname -s 2>NUL)
In order to simplify it, I verified that the problem is the shell
command itself. I made a very simple Makefile
with the following command that gets stuck as well:
uname_result := $(shell ls)
When processing the makefile with make -d
, as it gets to that line, I get the following:
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000009C
Why can't make
execute the shell
command? This exact same script used to be working just fine before the migration.
UPDATE 1 w/ more info:
There is only one make.exe
on my system, placed at C:\DS-5_v5.26.2\bin
.
I created a simplified makefile, Makefile.tmp
:
.PHONY: help
help:
echo ====================== TESTING ======================
uname_result := $(shell ls)
I process this makefile from Cygwin's bash CLI:
$ /cygdrive/c/DS-5_v5.26.2/bin/make -d -f Makefile.tmp help
and I get tons of diagnostics in return:
GNU Make 4.1
Built for Windows32
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
find_and_set_shell() path search set default_shell = C:/cygwin64/bin/sh.exe
Reading makefiles...
Reading makefile 'Makefile.tmp'...
Updating makefiles....
Considering target file 'Makefile.tmp'.
Looking for an implicit rule for 'Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.sh'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp,v'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'RCS/Makefile.tmp,v'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'RCS/Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 's.Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.o'.
Looking for a rule with intermediate file 'Makefile.tmp.o'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'Makefile.tmp.o,v'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'RCS/Makefile.tmp.o,v'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'RCS/Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 's.Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.c'.
Looking for a rule with intermediate file 'Makefile.tmp.c'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'Makefile.tmp.c,v'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'RCS/Makefile.tmp.c,v'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'RCS/Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 's.Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.y'.
Looking for a rule with intermediate file 'Makefile.tmp.y'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'Makefile.tmp.y,v'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'RCS/Makefile.tmp.y,v'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'RCS/Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 's.Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.l'.
Looking for a rule with intermediate file 'Makefile.tmp.l'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'Makefile.tmp.l,v'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'RCS/Makefile.tmp.l,v'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'RCS/Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 's.Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.w'.
Looking for a rule with intermediate file 'Makefile.tmp.w'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'Makefile.tmp.w,v'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'RCS/Makefile.tmp.w,v'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'RCS/Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 's.Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cc'.
Looking for a rule with intermediate file 'Makefile.tmp.cc'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'Makefile.tmp.cc,v'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cc,v'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 's.Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.C'.
Looking for a rule with intermediate file 'Makefile.tmp.C'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'Makefile.tmp.C,v'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'RCS/Makefile.tmp.C,v'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'RCS/Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 's.Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cpp'.
Looking for a rule with intermediate file 'Makefile.tmp.cpp'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'Makefile.tmp.cpp,v'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cpp,v'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 's.Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.p'.
Looking for a rule with intermediate file 'Makefile.tmp.p'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'Makefile.tmp.p,v'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'RCS/Makefile.tmp.p,v'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'RCS/Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 's.Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.web'.
Looking for a rule with intermediate file 'Makefile.tmp.web'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'Makefile.tmp.web,v'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'RCS/Makefile.tmp.web,v'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'RCS/Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 's.Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.f'.
Looking for a rule with intermediate file 'Makefile.tmp.f'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'Makefile.tmp.f,v'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'RCS/Makefile.tmp.f,v'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'RCS/Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 's.Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Looking for a rule with intermediate file 'Makefile.tmp.F'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'Makefile.tmp.F,v'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'RCS/Makefile.tmp.F,v'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'RCS/Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 's.Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Looking for a rule with intermediate file 'Makefile.tmp.r'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'Makefile.tmp.r,v'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'RCS/Makefile.tmp.r,v'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'RCS/Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 's.Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.m'.
Looking for a rule with intermediate file 'Makefile.tmp.m'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'Makefile.tmp.m,v'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'RCS/Makefile.tmp.m,v'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'RCS/Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 's.Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.ym'.
Looking for a rule with intermediate file 'Makefile.tmp.ym'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'Makefile.tmp.ym,v'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'RCS/Makefile.tmp.ym,v'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'RCS/Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 's.Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.s'.
Looking for a rule with intermediate file 'Makefile.tmp.s'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'Makefile.tmp.s,v'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'RCS/Makefile.tmp.s,v'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'RCS/Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 's.Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Looking for a rule with intermediate file 'Makefile.tmp.S'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'Makefile.tmp.S,v'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'RCS/Makefile.tmp.S,v'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'RCS/Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 's.Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.mod'.
Looking for a rule with intermediate file 'Makefile.tmp.mod'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'Makefile.tmp.mod,v'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'RCS/Makefile.tmp.mod,v'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'RCS/Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 's.Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.sh'.
Looking for a rule with intermediate file 'Makefile.tmp.sh'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'Makefile.tmp.sh,v'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'RCS/Makefile.tmp.sh,v'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'RCS/Makefile.tmp.sh'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 's.Makefile.tmp.sh'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.sh'.
No implicit rule found for 'Makefile.tmp'.
Finished prerequisites of target file 'Makefile.tmp'.
No need to remake target 'Makefile.tmp'.
Updating goal targets....
Considering target file 'help'.
File 'help' does not exist.
Finished prerequisites of target file 'help'.
Must remake target 'help'.
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000008C
but what's important is probably the first and last parts:
GNU Make 4.1
Built for Windows32
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
find_and_set_shell() path search set default_shell = C:/cygwin64/bin/sh.exe
Reading makefiles...
Reading makefile 'Makefile.tmp'...
Updating makefiles....
Considering target file 'Makefile.tmp'.
Looking for an implicit rule for 'Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
. . . .
. . . .
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.sh'.
No implicit rule found for 'Makefile.tmp'.
Finished prerequisites of target file 'Makefile.tmp'.
No need to remake target 'Makefile.tmp'.
Updating goal targets....
Considering target file 'help'.
File 'help' does not exist.
Finished prerequisites of target file 'help'.
Must remake target 'help'.
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000008C
So, as you can see, it does not perform neither the echo
command nor the ls
command. If I comment out the shell
command, I see the TESTING
message echoed to the terminal.
Obviously, DS-5's make.exe
was built for Windows. Should there be a problem calling it from Cygwin bash? If so, how come this worked well on the Win 7 machine?
UPDATE 2 w/ more info:
I repeated the test, this time running from Windows' CMD
prompt. I replaced the ls
command in the bshell
line with a dir
command. Surprisingly, the same behavior is happening on CMD
too!
So, apparently, the problem is with make
's shell
function invocation.
After contact with ARM support I got the following reply:
With regards to the problem you are seeing this is a known issue with GNU
make version 4.1 supplied by ARM with DS5. This version of make was shipped
with DS5 versions 5.23 to 5.26. DS5-5.22 used make 3.81, and DS5-5.27 and
later have used make 4.2 - neither of which suffer from this defect.
There are three possible workarounds in your case:
1 - Avoid using the "shell" command in your make script - this is probably
not ideal!
2 - Upgrade your DS-5 version to 5.27 or later - this may or may not be an
option for you.
3 - Download[*] a different version of GNU make and use it in place of the
version 3.81 that was supplied with your current version of DS-5.
[*] - Although make is freely available under GPL, unfortunately there are
legal implications involved with its redistribution which is why I can't
simply email you an alternative version of make.
Thanks to Alex from ARM support for this.