Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Как в Makefile получить информацию об ОС ?


Автор: andrew_121 11.6.2009, 22:14
Сабж.
Такое возможно?

Автор: Lazin 12.6.2009, 00:10
Цитата(andrew_121 @  11.6.2009,  22:14 Найти цитируемый пост)
Такое возможно? 

нет, make для этого не предназначен, если нужна кроссплатформенность - используй кроссплатформенную билд систему - qmake, cmake, scons

Автор: azesmcar 12.6.2009, 09:32
Цитата(Lazin @  12.6.2009,  00:10 Найти цитируемый пост)
qmake, cmake, scons 
...imake

Еще можно что-то вроде этого сделать. Но мне это не кажется хорошим решением.
Код

OS = `uname -o`
TARGET   = executable.${OS}


Автор: andrew_121 12.6.2009, 12:40
Как определить, установлен ли компонент от которого зависит цель, и если не установлен, запустить configure компонента от которого зависит сборка цели, и получить результат.

Автор: DRUID3 12.6.2009, 23:07
Цитата(Lazin @  11.6.2009,  23:10 Найти цитируемый пост)
нет, make для этого не предназначен, если нужна кроссплатформенность - используй кроссплатформенную билд систему - qmake, cmake, scons 

??? smile  Совет ни о чем в никуда... qmake, cmake, scons - это несколько другое... Если человеку нужно Linux&BSD то make вполне хватит. 

2azesmcar это вполне хорошее решение smile .

2andrew_121
Из makefile доступен весь арсенал программирования в bash (ну и других шкурках). Вбиваем соответственно в Googl "программирование в bash" и приобщаемся к одному из самых мощных и гибких инструментов UNIX-систем smile ...

Добавлено через 12 минут и 58 секунд
https://forum.antichat.ru/printthread.php?t=61617

Автор: azesmcar 13.6.2009, 00:26
Цитата(DRUID3 @  12.6.2009,  23:07 Найти цитируемый пост)
2azesmcar это вполне хорошее решение smile .

Это всего лишь решение частного случая. Для общего случая подходят вышеупомянутые решения.

Автор: DRUID3 13.6.2009, 02:24
Цитата(azesmcar @  12.6.2009,  23:26 Найти цитируемый пост)
Это всего лишь решение частного случая. Для общего случая подходят вышеупомянутые решения. 

А не надо пытаться решить своим кодом самые общие из возможных случаев smile - будет много лишнего и все равно не получится. Например для каких-то коммерческих никсов может и не быть порта qmake, cmake, scons или их применение чуткое руководство воспримет излишним(есть "военный" Linux в российских ВС, под свой проц, где и так не все гладко с ошибками) и т.д. и т.п. Но я понимаю, что обычно у народа рефлексия на кроссплатформенность Win-Lin-Mac OS X  smile потому то и qmake советуют.

 Но аФФтАр обмолвилСО, что нужна кроссплатформенность внутри nix (и рубрика соответствующая, не правда ли? smile ) потому применение дополнительных утелитоГ (основная изюминка которых "это еще и Windows") явно излишне. 

Автор: azesmcar 13.6.2009, 11:36
DRUID3

Ну я говорил про imake. Он поддерживает linux, unix, sun-os, hp-ux. В случае если это не только имя файла а подключаемые библиотеки, некоторые пути ... и так далее, писать shell script в Makefile очень неудобно и непрактично, для того и создали подобные утилиты которые генерируют Makefile.  smile а так, есть несколько решений, автор выберет нужное  smile 

Автор: chaos 17.6.2009, 06:44
bjam? smile

Автор: Lazin 17.6.2009, 08:18
кстати, недавно пришлось использовать cmake, надо сказать очень приятная в работе штука, а без out of source build я вообще вряд-ли захочу теперь обходиться smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)