LINUX.ORG.RU
Ответ на: комментарий от Harald

правильно давать ссылку сюда

Исходники готового проекта с инструкцией по сборке нагляднее. А для деталей можно смотреть документацию.

X512 ★★★★★
()
Ответ на: комментарий от Harald

то, что ты приводишь как пример - это эквивалент ./configure && make install

Предлагаю ещё посмотреть исходники объявлений сборки и сравнить.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от Harald

нет, он вполне себе кроссплатформенный

Ну да, примерно такой же «кроссплатформенный», как и autotools.

EXL ★★★★★
()
Ответ на: комментарий от Harald

а всякие проприетарные hpux и прочее - нужно?

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

А если у меня не mingw, а обычная винда с cl.exe?

тогда тебе придётся ручками немного подшаманить над configure.ac и Makefile.am, чтобы они учитывали все особенности cl.exe

Harald ★★★★★
()
Ответ на: комментарий от cvs-255

так ведь в винду точно умеет, пруфы есть :)

Harald ★★★★★
()
Ответ на: комментарий от Harald

для начала, даже если ты каким то чудом сделаешь из configure.ac configure, то ты даже его запустить не сможешь, т.к. без sh его не запустить

cvs-255 ★★★★★
()

В общем, ребята, у нас в C/C++ ‘‘‘‘экосистеме’’’’ расклад такой:

моча > waf, jam, premake, meson, qbs, tup, {вставь сюда свою любимую маргинальщину}, gradle > Pure Makefiles > QMake > говно > CMake > autotools > SCons

Бегите!

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Harald

который чисто случайно совпадает с половиной другой операционной системы

cvs-255 ★★★★★
()
Ответ на: комментарий от X512

Предлагаю ещё посмотреть исходники объявлений сборки и сравнить.

Здравствуйте, это конкурс хелло ворлдов?

$ grep . configure.ac Makefile.am hello.c 
configure.ac:AC_PREREQ([2.63])
configure.ac:AC_INIT([hello], [0.0.1])
configure.ac:AC_CONFIG_AUX_DIR([build-aux])
configure.ac:AM_INIT_AUTOMAKE([-Wall -Werror foreign])
configure.ac:AC_PROG_CC
configure.ac:AM_PROG_CC_C_O
configure.ac:AC_CONFIG_FILES([
configure.ac:    Makefile
configure.ac:])
configure.ac:AC_OUTPUT
Makefile.am:bin_PROGRAMS = hello
Makefile.am:hello_SOURCES = hello.c
hello.c:#include <stdio.h>
hello.c:int main(void)
hello.c:{
hello.c:    printf("Hello, World!\n");
hello.c:    return 0;
hello.c:}
wandrien ★★
() автор топика
Ответ на: комментарий от EXL

Так а что там с iOS?

Если порассуждать, что под iOS обычно пишут под macOS, а там автотулзы без проблем запускаются и работают, то можно придти к очевидному выводу, что принципиальных проблем со сборкой автотулзами для iOS не будет

Harald ★★★★★
()
Ответ на: комментарий от cvs-255

Да, умеют. Но там извечные проблемы с выбором модели исключений и порты новых компиляторов (а это новые стандарты) не слишком быстро выходят. В любом случае MinGW и MinGW-w64 и MSYS2 в Windows инородны.

EXL ★★★★★
()
Ответ на: комментарий от cvs-255

в mingw-w64 уже умеют собирать нативно под винду, чтобы не требовалось тащить mingw бибилиотеки с собой?

ты случаем не путаешь с Cygwin и зависимостью от cygwin.dll?

Harald ★★★★★
()
Ответ на: комментарий от cvs-255

А в винде компиляция не требует visual studio, достаточно поставить компилятор, он отдельно идет

давай пруфы штоле, последний раз компилятор отдельно поставлялся лет 15 назад, теперь только вместе со студией

Harald ★★★★★
()
Ответ на: комментарий от cvs-255

ну значит, у мелкософта проблеск разума случился

правда у меня винды под рукой нет, чтобы проверить, что оно там качает и запускает

Harald ★★★★★
()
Ответ на: комментарий от wandrien

Ну правильнее было бы сказать Unix-only. Но поскольку из Unix-like сегодня актуальны лишь Linux, macOS, Android и iOS для которых pkg-config инороден как и для Windows, то сфера его применения довольно ограничена. Примерно так же, как autotools для Windows. И в Windows и в macOS для работы pkg-config и autotools требуются «подсистемы» вроде MSYS2, Cygwin, Homebrew и т. д.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Вообще, это конечно большой промах со стороны авторов pkg-config, что они выбрали такой формат файлов, который зависим от Linux.

cvs-255 ★★★★★
()
Ответ на: комментарий от Harald
     AC_CHECK_LIB([user32],   [main],, AC_MSG_ERROR(libuser32 missing))
     AC_CHECK_LIB([gdi32],    [main],, AC_MSG_ERROR(libgdi32 missing))
     AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(libcomdlg32 missing))
     AC_CHECK_LIB([winmm],    [main],, AC_MSG_ERROR(libwinmm missing))
     AC_CHECK_LIB([shell32],  [SHGetSpecialFolderPathW],, AC_MSG_ERROR(libshell32 missing))
     AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(libcomctl32 missing))
     AC_CHECK_LIB([ole32],    [CoCreateInstance],, AC_MSG_ERROR(libole32 missing))
     AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(liboleaut32 missing))
     AC_CHECK_LIB([uuid],     [main],, AC_MSG_ERROR(libuuid missing))
     AC_CHECK_LIB([advapi32], [CryptAcquireContextW],, AC_MSG_ERROR(libadvapi32 missing))
     AC_CHECK_LIB([ws2_32],   [WSAStartup],, AC_MSG_ERROR(libws2_32 missing))
     AC_CHECK_LIB([shlwapi],  [PathRemoveFileSpecW],, AC_MSG_ERROR(libshlwapi missing))
     AC_CHECK_LIB([iphlpapi], [GetAdaptersAddresses],, AC_MSG_ERROR(libiphlpapi missing))

И вот что реально есть экземпляры Windows без этих библиотек?

Begemoth ★★★★★
()
Ответ на: комментарий от cvs-255

Спасибо за информацию, раньше был прямо EXE-файл на MSDN, скачав который ты получал компилятор, MASM и пр. command-line tools. Потом его убрали, думал совсем. Оказывается в опцию инсталлятора Visual Studio включили.

Не слишком-то очевидно, ИМХО.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Зато эти «подсистемы» дают тебе готовый репозиторий с пакетами, с «нативным» подходом тебе придётся пердолиться с самостоятельной сборкой всех зависимостей, которым наверняка всё равно нужны будут автотулзы

Harald ★★★★★
()
Ответ на: комментарий от Begemoth

И вот что реально есть экземпляры Windows без этих библиотек?

Там идёт проверка этих библиотек (пустышек для линковки) в инородном для Windows тулчейне MinGW-w64, в котором иногда из версии в версию их «теряют».

EXL ★★★★★
()
Ответ на: комментарий от Begemoth

какого-то конкретного файлика внезапно может и не быть, это раз, во-вторых, всё равно ищутся *.dll.a файлы (типа файл экспорта для конкретной DLL), в третьих, AC_CHECK_LIB() добавляет указанную библиотеку в команду линковки

Harald ★★★★★
()
Ответ на: комментарий от EXL

Оу, а вот это не здорово. Если для линковки с системными виндовыми библиотеками требуются заглушки в mingw, то что насчет линковки с прочими виндовыми библиотеками, которые в mingw не имеют заглушек?

cvs-255 ★★★★★
()
Ответ на: комментарий от EXL
$ grep -ohr -- ' -.' /usr/lib/pkgconfig/ | sort | uniq -c | sort -n
      1  -O
      1  -r
      2  -e
      2  -R
      5  -m
      5  -s
      6  --
      8  -i
     15  -f
     29  -W
     51  - 
     95  -p
    195  -D
   1178  -L
   1277  -I
   2500  -l

Ты уверен, что здесь есть хоть какая-то практическая проблема в конвертировании этого в опции cl.exe на лету?

Было бы желание. А желания, видимо, не было.

wandrien ★★
() автор топика
Ответ на: комментарий от Harald

У нативного подхода есть всякие там VCPKG и прочее. Без медленного и форкающегося autotools.

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.