Знает это собирающий тул (который, к примеру у dpkg узнаёт), а так ты эту ответственность складываешь на сам pkg-config, которому вообще пофиг, куда смотреть и на какой машине быть запущенным.
Неувязочка получается. Синтаксис ключика -L у компилятора pkgconfig знает, а какой там ELFCLASS - не должен знать.
Хотя на мой взгляд логичнее было бы наоборот - чтобы pkgconfig выдал бы имена файлов с которыми линковаться (с указанием класса), а собирающий тул бы разбирался, как это правильно передать своему компилятору.
Тогда работа с библиотеками, которые собраны в рамках текущего проекта (и являются честными целями в Makefile) и работа с библиотеками из предустановленных пакетов, велась бы единообразно.
Ну тут собственно вопроса два: 1. Что в .pc писать 2. Где этот .pc искать. Если уж pkg-config вынуждены были научить опции --msvc-syntax (и почему-то сделали её работающей только в Windows. Хотя что мне мешает генерировать под более другой системой командные файлы для сборки или вообще запускать cl.exe посредством wine?) то могли бы встроить в него немножко тайного знания на тему о том, какие бывают битности и где можно искать pc-файл для соответствующей битности.
Кстати, интеллекта на то, что для библиотеки, лежащей в нестандартном месте выдать не только -L, но и -R (или -Wl,-R или -Wl,-rpath) ему тоже не хватает.
В общем в текущем варианте выдачу этого самого pkg-config приходится все равно читать глазами и переписывать в Makefile руками.
no subject
Date: 2009-06-01 09:17 am (UTC)no subject
Date: 2009-06-01 09:18 am (UTC)Каким таким способом (кроме libastral) ты узнаешь, где лежат библиотеки для кросскомпиляции? Будешь парсить триплет архитектуры и гадать?
no subject
Date: 2009-06-01 09:27 am (UTC)Поэтому идея указывать префикс с этим справляется.
no subject
Date: 2009-06-01 03:08 pm (UTC)no subject
Date: 2009-06-01 04:43 pm (UTC)Все равно еще -m64 компилятору скармливать.
no subject
Date: 2009-06-01 04:45 pm (UTC)no subject
Date: 2009-06-01 04:56 pm (UTC)Хотя на мой взгляд логичнее было бы наоборот - чтобы pkgconfig выдал бы
имена файлов с которыми линковаться (с указанием класса), а собирающий тул бы разбирался, как это правильно передать своему компилятору.
Тогда работа с библиотеками, которые собраны в рамках текущего проекта (и являются честными целями в Makefile) и работа с библиотеками из предустановленных пакетов, велась бы единообразно.
no subject
Date: 2009-06-01 04:57 pm (UTC)no subject
Date: 2009-06-01 05:27 pm (UTC)1. Что в .pc писать
2. Где этот .pc искать.
Если уж pkg-config вынуждены были научить опции --msvc-syntax (и почему-то сделали её работающей только в Windows. Хотя что мне мешает генерировать под более другой системой командные файлы для сборки или вообще запускать cl.exe посредством wine?) то могли бы встроить в него немножко тайного знания на тему о том, какие бывают битности и где можно искать pc-файл для соответствующей битности.
Кстати, интеллекта на то, что для библиотеки, лежащей в нестандартном месте выдать не только -L, но и -R (или -Wl,-R или -Wl,-rpath) ему тоже не хватает.
В общем в текущем варианте выдачу этого самого pkg-config приходится все равно читать глазами и переписывать в Makefile руками.