Чем нынче компилирую GNUтые проекты
От: PanychY  
Дата: 02.01.17 11:18
Оценка:
Здравствуйте

В общем задача простая: есть ГНУтая либа с билд-системой autotools (configure и иже с ним)
Чем сейчас бильдяд такие либы?
1. mxe? Не очень решение, ибо виртуалка, медленно, и результат мягко-говоря не гарантирован(на соседнем форуме жаловался уже)
2. msys2? Поставил. bash на месте, компилятора нет. Даже информации где взять подходящий нету.
3. mingw(вариации их) — только компилятор, конфигуратор не запустишь.(как вариант одолжил bash из комплекта git4windows но закончилось всё одиотской ошибкой "не могу слинокваться с -lphtreads".

В общем, опыт тыкания показывает что всё плохо с какой стороны не заглядывай.
Буду благодарен за хорошую ссылочку на хорошую сборочку этого всего добра в рабочем состоянии: autotools, libtoolize, gcc, etc
Да, целевые платформы обе i686, x86_64
autotools mingw mingw64 mingw-w64 gcc libtool
Re: Чем нынче компилирую GNUтые проекты
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 02.01.17 11:23
Оценка: +1 -1
Здравствуйте, PanychY, Вы писали:

PY>Здравствуйте


PY>В общем задача простая: есть ГНУтая либа с билд-системой autotools (configure и иже с ним)

PY>Чем сейчас бильдяд такие либы?

Re: Чем нынче компилирую GNUтые проекты
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.01.17 11:30
Оценка: -1
Здравствуйте, PanychY, Вы писали:

PY>В общем задача простая: есть ГНУтая либа с билд-системой autotools (configure и иже с ним)


Ой, я бы компилировал кросс-mingw'ой из-под линуха, и был бы совершенно счастлив, что венда в этой конструкцоо мне нужна только для тестирования конечного результата...
Re[2]: Чем нынче компилирую GNUтые проекты
От: PanychY  
Дата: 02.01.17 12:04
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, PanychY, Вы писали:


PY>>В общем задача простая: есть ГНУтая либа с билд-системой autotools (configure и иже с ним)


Pzz>Ой, я бы компилировал кросс-mingw'ой из-под линуха, и был бы совершенно счастлив, что венда в этой конструкцоо мне нужна только для тестирования конечного результата...

К сожалению
Автор: PanychY
Дата: 21.12.16
Re[2]: Чем нынче компилирую GNUтые проекты
От: PanychY  
Дата: 02.01.17 14:44
Оценка:
Здравствуйте, velkin, Вы писали:

V>Image: pinki-i-breyn_133778734_orig_.jpg

Поясните
*** Warning: linker path does not have real file for library -lpthread.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libpthread and none of the candidates passed a file format test
*** using a file magic. Last file checked: d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../x86_64-w64-mingw32/lib//libpthread.dll.a
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.

*** Since this library must not contain undefined symbols,
*** because either the platform does not support them or
*** it was explicitly requested with -no-undefined,
*** libtool will only create a static version of it.
Re: Читай реадми
От: Sheridan Россия  
Дата: 03.01.17 08:47
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>В общем задача простая: есть ГНУтая либа с билд-системой autotools (configure и иже с ним)

PY>Чем сейчас бильдяд такие либы?
Оно само разберётся. Просто запускай конфигуру с нужными ключами, а потом make.
Ну или смотри чем оно билдится. Сейчас набирает популярность cmake с ниндзями нопример. Ну и вообще реадми читай, как правило там всё написано.
Matrix has you...
Re[2]: Читай реадми
От: PanychY  
Дата: 03.01.17 09:57
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, PanychY, Вы писали:


PY>>В общем задача простая: есть ГНУтая либа с билд-системой autotools (configure и иже с ним)

PY>>Чем сейчас бильдяд такие либы?
S>Оно само разберётся. Просто запускай конфигуру с нужными ключами, а потом make.
S>Ну или смотри чем оно билдится. Сейчас набирает популярность cmake с ниндзями нопример. Ну и вообще реадми читай, как правило там всё написано.
Не внимательно читали топик. Суть вопроса именно в том, чем запустить это самый configure. Оно ниразу ни .bat, ни .cmd, ни .exe
Я сейчас достал sh.exe из состава git client-а, этого мне хватило для запуска конфигуратора. Только мне этого не хватает, ибо нужен libtoolize, autoconf, а значит ещё и perl, и бог знает что ещё. Меня интересует сборник этого всего барахла в одном месте, что я в конце концов за-7зип-ил его, и когда нужно развернул, коду нужно унес.
Re[3]: Читай реадми
От: Sheridan Россия  
Дата: 03.01.17 10:04
Оценка: -2 :)
Здравствуйте, PanychY, Вы писали:

PY>Не внимательно читали топик. Суть вопроса именно в том, чем запустить это самый configure. Оно ниразу ни .bat, ни .cmd, ни .exe

PY>Я сейчас достал sh.exe из состава git client-а, этого мне хватило для запуска конфигуратора. Только мне этого не хватает, ибо нужен libtoolize, autoconf, а значит ещё и perl, и бог знает что ещё. Меня интересует сборник этого всего барахла в одном месте, что я в конце концов за-7зип-ил его, и когда нужно развернул, коду нужно унес.
Ааа, из под игрушечной оси запустить. Тут я вам не помощник, разве что могу посоветовать завязывать с игрушечными осями и переходить в нормальный линупс.
Ну а вообще, под линупсом бывает и не-кроссплатформенный софт. Реже категорически, конечно, чем не-кроссплатформенный софт под игрушечную ось, но бывает.
Ну и общее правило — запускай, смотри чем оно недовольно, исправляй, запускай. И так по рекурсии до того момента, пока либо не установится, либо не станет понятно, что "эта штука" под игрушечной осью не работает. Как правило оно вполне адекватно пишет что оно хочет еще на этапе конфигурирования.

Ну а "сборник этого всего барахла в одном месте" это любой дистрибутив линупс, хотя я бы посоветовал (щас никто не удивится) генту, ибо там оно, что говорицца, изкаропки.
Matrix has you...
Re[3]: Читай реадми
От: pilgrim_ Россия  
Дата: 03.01.17 10:36
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>.. нужен libtoolize, autoconf, а значит ещё и perl, и бог знает что ещё. Меня интересует сборник этого всего барахла в одном месте, что я в конце концов за-7зип-ил его, и когда нужно развернул, коду нужно унес.


По идее все это есть в cygwin.
Но есть нюанс — если ты строишь dll с пом. cygwin, то и юзать ее желательно (т.к. беспроблемно) из приложения, также построенного с пом. cygwin. В противном случае, если загружать cygwin-build dll, это гемор, см. 6.19.How do I use cygwin1.dll with Visual Studio or Mingw-w64?
Re: Чем нынче компилирую GNUтые проекты
От: sr_dev  
Дата: 03.01.17 11:09
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>Здравствуйте

решение, ибо виртуалка, медленно, и результат мягко-говоря не гарантирован(на соседнем форуме жаловался уже)
PY>2. msys2? Поставил. bash на месте, компилятора нет. Даже информации где взять подходящий нету.

Там же можно доставить пакеты, перл гцц и все прочее, вроде pacman этим занимается, и вроде какая то ui тулза была. Собрать msys'ом можно очень многое, я например собирал GDB под винду для удаленной отладки линукс приложений из под винды. Но к сожалению не всё, какие-то сугубо посиксные вещи не получится.

UPD. msys вроде это развитие mingw
Отредактировано 03.01.2017 11:15 sr_dev . Предыдущая версия .
Re[2]: Читай реадми
От: Evgeny.Panasyuk Россия  
Дата: 03.01.17 11:47
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>Сейчас набирает популярность cmake с ниндзями нопример.


CMake давно популярен — я его лет десять уже использую. Тот же KDE больше 10 лет назад на него перевели.
Re[3]: Читай реадми
От: Sheridan Россия  
Дата: 03.01.17 12:15
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>CMake давно популярен — я его лет десять уже использую. Тот же KDE больше 10 лет назад на него перевели.

Да, но нет. Судя по генте — сильно заметно многие остаются на автотулзах.
Matrix has you...
Re: Чем нынче компилирую GNUтые проекты
От: Evgeny.Panasyuk Россия  
Дата: 03.01.17 14:53
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>2. msys2? Поставил. bash на месте, компилятора нет. Даже информации где взять подходящий нету.

PY>3. mingw(вариации их) — только компилятор, конфигуратор не запустишь.(как вариант одолжил bash из комплекта git4windows но закончилось всё одиотской ошибкой "не могу слинокваться с -lphtreads".

Там есть пакетный менеджер pacman — через него ставится необходимое, например.

Другой вариант Cygwin — там тоже есть пакетный менеджер через который ставится всё необходимое для сборки.
Отредактировано 03.01.2017 14:53 Evgeny.Panasyuk . Предыдущая версия .
Re[3]: Читай реадми
От: alpha21264 СССР  
Дата: 03.01.17 15:20
Оценка: -1
Здравствуйте, PanychY, Вы писали:

PY>Не внимательно читали топик. Суть вопроса именно в том, чем запустить это самый configure. Оно ниразу ни .bat, ни .cmd, ни .exe


Есть подозрение, что если configure ни .bat, ни .cmd, ни .exe, то и запускать его не надо.
configure — это программа, которая должна что-то сконфигурить.
Вот только эта программа должна что-то знать, про платформу, для которой она конфигурит.
А она про платформу очевидно не знает. Вооотъ.

Течёт вода Кубань-реки куда велят большевики.
Re[4]: Читай реадми
От: Evgeny.Panasyuk Россия  
Дата: 03.01.17 15:26
Оценка:
Здравствуйте, alpha21264, Вы писали:

PY>>Не внимательно читали топик. Суть вопроса именно в том, чем запустить это самый configure. Оно ниразу ни .bat, ни .cmd, ни .exe

A>Есть подозрение, что если configure ни .bat, ни .cmd, ни .exe, то и запускать его не надо.
A>configure — это программа, которая должна что-то сконфигурить.
A>Вот только эта программа должна что-то знать, про платформу, для которой она конфигурит.
A>А она про платформу очевидно не знает. Вооотъ.

configure это обычно shell скрипт, который вполне себе запускается под MinGW или Cygwin. Как иначе по-твоему собирается весь софт на базе autotools под MinGW и Cygwin?
https://github.com/gcc-mirror/gcc/blob/master/configure
Re[3]: Читай реадми
От: Alexey F  
Дата: 03.01.17 15:50
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>Не внимательно читали топик. Суть вопроса именно в том, чем запустить это самый configure. Оно ниразу ни .bat, ни .cmd, ни .exe

PY>Я сейчас достал sh.exe из состава git client-а, этого мне хватило для запуска конфигуратора. Только мне этого не хватает, ибо нужен libtoolize, autoconf, а значит ещё и perl, и бог знает что ещё.
Одного sh не хватит. MSYS/MSYS2 же стоит? Там и perl должен быть, и autoconf, и libtoolize. MinGW стоит? В PATH путь к бинарникам MinGW (\bin) прописан?
echo $PATH
из MSYS показывает путь к MinGW\bin?

Если да, то открыть MSYS, cd в нужную папку, набрать
./configure
, а там как обычно: допиливать пока не соберётся.

PY>Меня интересует сборник этого всего барахла в одном месте, что я в конце концов за-7зип-ил его, и когда нужно развернул, коду нужно унес.

В смысле — всё окружение для сборки этого на другой машине?
Re[5]: Читай реадми
От: alpha21264 СССР  
Дата: 03.01.17 16:19
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, alpha21264, Вы писали:


A>>Вот только эта программа должна что-то знать, про платформу, для которой она конфигурит.

A>>А она про платформу очевидно не знает. Вооотъ.

EP>configure это обычно shell скрипт, который вполне себе запускается под MinGW или Cygwin. Как иначе по-твоему собирается весь софт на базе autotools под MinGW и Cygwin?

EP>https://github.com/gcc-mirror/gcc/blob/master/configure

По моему?
По моему оно вообще не собирается.
В смысле, что проще написать свой makefile, чем добиться, чтобы оно сконфигурировалсь под MinGW.
Не, ну то есть, если у тебя таких библиотек сотня, то стоит заморачиваться.
А если нет, то нет.

Видишь, что ему тут уже советовать начали? Пакеты ставить.
Как ты думаешь, если у него нет опыта работы в юниксах, сможет ли он все пакеты правильно поставить?

Течёт вода Кубань-реки куда велят большевики.
Re[6]: Читай реадми
От: Evgeny.Panasyuk Россия  
Дата: 03.01.17 16:33
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>В смысле, что проще написать свой makefile, чем добиться, чтобы оно сконфигурировалсь под MinGW.


Зависит от задач, и как много там привязки к *nix-specific штукам.

A>Не, ну то есть, если у тебя таких библиотек сотня, то стоит заморачиваться.

A>А если нет, то нет.

Я собирал, без проблем, правда не под MinGW, а под Cygwin. Тем не менее, не думаю что в MinGW там как-то намного хуже.

A>Как ты думаешь, если у него нет опыта работы в юниксах,


А с чего ты взял что нету?

A>сможет ли он все пакеты правильно поставить?


Сможет, даже в случае отсутствия опыта, никакая это не rocket science.
Re[4]: Читай реадми
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.01.17 16:38
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>configure — это программа, которая должна что-то сконфигурить.

A>Вот только эта программа должна что-то знать, про платформу, для которой она конфигурит.
A>А она про платформу очевидно не знает. Вооотъ.

configure запускается под msys/cygwin'ом, которые более-менее правдоподобно эмулируют posix-like environment под вендой. И configure знает, что ему надо знать, про этот environment Проблема в том, что они и раньше были очень неудобными, а теперь, говорят, вдобавок к тому стало трудно нормальный работающий инсталлятор найти.

Вообще, я не понимаю, зачем так мучаться. mingw не является 100% заменой нативного вендового компилятора, но с теми ограничениями, с которыми он работает, он ничуть не хуже работает в качестве кросс-компилятора из линуха в венду. И в таком качестве пользоваться им гораздо удобнее, чем запускать mingw под вендой, потому что работаешь в нормальном юниксе, а не в кривой подделке под него.
Re[4]: Читай реадми
От: PanychY  
Дата: 03.01.17 17:04
Оценка:
Здравствуйте, Alexey F, Вы писали:

AF>Здравствуйте, PanychY, Вы писали:


PY>>Не внимательно читали топик. Суть вопроса именно в том, чем запустить это самый configure. Оно ниразу ни .bat, ни .cmd, ни .exe

PY>>Я сейчас достал sh.exe из состава git client-а, этого мне хватило для запуска конфигуратора. Только мне этого не хватает, ибо нужен libtoolize, autoconf, а значит ещё и perl, и бог знает что ещё.
AF>Одного sh не хватит. MSYS/MSYS2 же стоит? Там и perl должен быть, и autoconf, и libtoolize. MinGW стоит? В PATH путь к бинарникам MinGW (\bin) прописан?
MSYS2 поставил, доставил штатным установщиком mingw нужных битностей, autotools, и прочего барахлишка
И тут приколы:
1. поинструкции постройки(подсмотренной у mxe) мне нужно пропатчить configure.ac и актуализировать от него зависящие так: libtoolize && autoreconf -fi
Вот последний матерится
$ autoreconf -fi
/usr/bin/autopoint: line 485: /usr/share/gettext/archive.dir.tar.xz: No such file or directory
tar: This does not look like a tar archive
tar: gettext-0.16.1: Not found in archive
tar: Exiting with failure status due to previous errors
autopoint: *** infrastructure files for version 0.16.1 not found; this is autopoint from GNU gettext-tools 0.19.7
autopoint: *** Stop.
autoreconf: autopoint failed with exit status: 1


AF>
echo $PATH
из MSYS показывает путь к MinGW\bin?

До этого не доходит, см. выше

AF>Если да, то открыть MSYS, cd в нужную папку, набрать
./configure
, а там как обычно: допиливать пока не соберётся.

С этим проблем нету. В смысле, если обойти проблему выше(на linux хосте пропатчил исходники и выполнил libtoolize && autoreconf -fi и принес назад на винду результат) то у меня даже всё собралось(и даже не в MSYS2 окружении а просто с помощью завалявшегося mingw), и даже работает. Только вот проблема выше — я хз как оно там версиями поругалось, но такого не замечал раньше нигде.

PY>>Меня интересует сборник этого всего барахла в одном месте, что я в конце концов за-7зип-ил его, и когда нужно развернул, коду нужно унес.

AF>В смысле — всё окружение для сборки этого на другой машине?
Да. Предположим у меня есть рабочий ноут где я пилю всё это дело, предположим я настрою MSYS2 так что оно всё заработает. Вот теперь я хочу этот весь результат запаковать/забекапить, передать архив коллеге/забрать на домашний десктоп и развернуть и сразу приступить к работе, а не с нуля качать MSYS2 и доустанавливать весь инструментарий(pacman -S patch autotools libtools perl x86_64-mingw-w64-gcc i686-mingw-w64-gcc и т.д.). Т.е. я это то сделаю, но хотелось бы готовую инструкцию по этому поводу где-то почитать, ибо развелось msys, msys2, cygwin, и т.д и т.п. а толкового так и нету(см. п1 выше)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.