TL;DR:
При новой установке Windows 10 я установил средства разработки ARM DS-5 v5.26.2. Я использую его make.exe
для сборки нашего проекта либо из командной строки Cygwin, либо из настроек сборки Eclipse IDE.
Наш Makefile содержит строку:
uname_result := $(shell uname -s)
но всякий раз, когда make
достигает этой строки, он застревает. Это происходит на терминале bash, а также в командной строке Windows.
ОБНОВЛЕНИЕ 3:
После дальнейшего устранения неполадок выяснилось, что проблема заключалась в самой утилите DS-5 make
. Я добавил make
в свою установку Cygwin и использовал ее, и теперь мои сборки работают нормально.
Теперь вопрос в том, почему версия ARM не работает на моей машине с Win 10, где она отлично работала на Win 7.
Полная версия:
Я только что выполнил чистую установку Windows 10 на своем рабочем ПК после двух лет использования Windows 7 на этом ПК. В последние два дня я переустанавливаю наши инструменты и возвращаюсь в форму. К сожалению, теперь я застрял с make
, вызывающим у меня головную боль.
Мы разрабатываем встроенное ПО с использованием набора инструментов ARM DS-5. Проект представляет собой проект Makefile, поэтому мы не используем встроенный конструктор Eclipse. Чтобы построить проект вне среды Eclipse, я установил Cygwin
для удобного bash
интерфейса командной строки. И make
, и clang
являются частью установки DS-5.
Когда я запускаю make
в CLI формы проекта Makefile
, выполнение останавливается на неопределенный срок.
[...удаление длинной истории после процесса выявления проблемы...]
Отследив источник проблемы, я обнаружил, что проблема связана с этой строкой:
uname_result := $(shell uname -s 2>NUL)
Чтобы упростить его, я убедился, что проблема в самой команде shell
. Я сделал очень простой Makefile
со следующей командой, которая также зависает:
uname_result := $(shell ls)
При обработке make-файла с make -d
, когда он доходит до этой строки, я получаю следующее:
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000009C
Почему make
не может выполнить команду shell
? Этот точно такой же скрипт работал нормально до миграции.
ОБНОВЛЕНИЕ 1 с дополнительной информацией:
В моей системе есть только один make.exe
, расположенный в C:\DS-5_v5.26.2\bin
.
Я создал упрощенный make-файл Makefile.tmp
:
.PHONY: help
help:
echo ====================== TESTING ======================
uname_result := $(shell ls)
Я обрабатываю этот make-файл из CLI Cygwin bash:
$ /cygdrive/c/DS-5_v5.26.2/bin/make -d -f Makefile.tmp help
и я получаю тонны диагностики взамен:
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
но что важно, так это, наверное, первая и последняя части:
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
Итак, как видите, он не выполняет ни команду echo
, ни команду ls
. Если я закомментирую команду shell
, я увижу сообщение TESTING
, которое будет отражено на терминале.
Очевидно, что make.exe
DS-5 был создан для Windows. Должны ли быть проблемы с вызовом из Cygwin bash? Если да, то почему это хорошо работает на машине с Win 7?
ОБНОВЛЕНИЕ 2 с дополнительной информацией:
Я повторил тест, на этот раз из подсказки Windows CMD
. Я заменил команду ls
в строке bshell
на команду dir
. Удивительно, но такое же поведение происходит и на CMD
!
Итак, очевидно, проблема в вызове функции shell
make
.
Main thread handle
НЕ входит в состав cygwin только в сборке Windows - person matzeri   schedule 15.07.2017make.exe
, который у меня есть, находится вC:\DS-5_v5.26.2\bin
. Более того, в сценарии оболочки, который я использую для вызова make, я явно указал полный путь к этой программе make. - person ysap   schedule 15.07.2017make
вместо того, который включен в DS-5. - person ysap   schedule 23.04.2018