реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> GNU make в windows, Проблемы и их решения
ReAl
сообщение Jun 10 2009, 17:14
Сообщение #31


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(AHTOXA @ Jun 10 2009, 19:59) *
Позвольте я Вам процитирую, что сказал ReAl:
Курсив мой. Насколько я понимаю, здесь речь идёт именно о разворачивани звёздочек мейком в команде.
Не обязательно.
а) Тот make мог и одиночные команды на sh отправлять - он имеет право одиночные команды выполнять прямым вызовом системы, но не обязан.
б) А если он все команды со звёздочками обязан отправить shell-у, то тогда он вообще ни при чём. А если sh.exe нет, то виндовая версия в качестве shell вроде как %COMSPEC% зовёт - так ли, сяк ли, а звёздочки он сам не разворачивает.

Это дело относится к довольно старым временам перехода от борландического make на GNU-тый, на какой машине что стояло и как работало - уже не вспомню. Возможно, проблемы с "на одном компе звёздочки маскировать надо, на другом нет" связаны были именно с тем, что на одном был sh.exe, а на другом не было.
Так что тут "мопед не мой".


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 10 2009, 18:09
Сообщение #32


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ReAl @ Jun 10 2009, 23:14) *
Не обязательно.

То есть, я неправильно понял фразу "(и, кажется, с некоторыми вариантами самого make, тогда и упрятывание sh из путей не помогает)"? Или это Вы уже сейчас переосмысливаете, по итогам обсуждения? Просто у меня тоже воспоминания времён появления первых gnuтых мейков под винду, и тоже в процессе перехода с borland make. И вроде бы, мейк сам разворачивал. Потому что шелл я стабильно выкидывал:-)
Да и логично это, в принципе-то. Раз шелл разворачивает звёздочки, то и мейк, действуя в обход шелла (неважно почему, потому что он так решил, или потому что не нашёл sh), то есть, по сути выполняя функции шелла, по идее должен поступать так же.
Надо покопаться в закромах, может и отыщу такой мейк:-)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jun 10 2009, 19:13
Сообщение #33


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(AHTOXA @ Jun 10 2009, 21:09) *
То есть, я неправильно понял фразу "(и, кажется, с некоторыми вариантами самого make, тогда и упрятывание sh из путей не помогает)"? Или это Вы уже сейчас переосмысливаете, по итогам обсуждения?
Это я и в первом, и во втором случае пытаюсь объяснить свои воспоминания, которых на момент первой фразы было меньше, чем появилось впоследствии :-)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 10 2009, 23:43
Сообщение #34


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Понятно:-) Поискал среди старых мейков, не нашёл. Может и правда не было такого:-)
Зато в процессе поисков нашёл подтверждение кривости sh smile.gif
Цитата из readme.W32 от мейка:
Цитата
GNU make and brain-dead shells (BATCH_MODE_ONLY_SHELL):

Some versions of Bourne shell do not behave well when invoked
as 'sh -c' from CreateProcess(). The main problem is they seem
to have a hard time handling quoted strings correctly. This can
be circumvented by writing commands to be executed to a batch
file and then executing the command by calling 'sh file'.

To work around this difficulty, this version of make supports
a batch mode. When BATCH_MODE_ONLY_SHELL is defined at compile
time, make forces all command lines to be executed via script
files instead of by command line.

Собственно, как раз в моём случае sh и не смог "handle quoted strings correctly".
Скачал мейк, собрал его с опцией BATCH_MODE_ONLY_SHELL. Завтра проверюsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 19:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01461 секунд с 7
ELECTRONIX ©2004-2016