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


Автор: heavix 7.2.2012, 12:10
Доброго времени суток, уважаемые форумчане!
Столкнулся с необходимостью дописать утилиту для опенсорсного кросплатформенного проекта... сам - виндовс девелопер...
Вытянул из svn исходники... собрал под виндой в студии... добавил свой проект - дополнительную утилиту, которая исспользует
несколько либ из этого проекта... Под виндой никаких проблем нет - все зависимости настроил в студии в несколько кликов.
Теперь нужно это-же собрать под никсами. И вот здесь я нахожусь в замешательстве. Дело в том что за базу я взял один из проектов
этого проекта - святой копипаст заготовки. Добавил несколько файлов исходников, где дополнительно подключил MySql...И теперь не знаю как это все собрать.
В проекте исспользуется automake. в каждом под проекте лежит файлики .am, makefile.in и makefile. По сути мне нужно скопипастить мейк файл из тулзы которую я переделывал в свой каталог, поменять названия цели, добавить своиисходники, но я в замешательстве: как мне подключить MySql? И собственно где?
Нужно ли создавать am файл, править конфигур... Если мне нужно только собрать мою тулзу.
Спасибо большое заранее всем откликнувшимся!) 

Автор: tzirechnoy 7.2.2012, 12:38
Добрый совет: возьмите свои исходники (и только их), скопируйте куда-нибудь, вычистите из получившэгося всё, что Вы не писали своими руками (максимум копипаст -- одна строка. Если вызов функцыи из примеров занял две -- вычищать) -- а про заготовки, автотулс и прочую хрень забудьте.

Автор: heavix 7.2.2012, 12:43
Я на самом деле расширяю тулзу работой с мускулем... по этому вычистить все - неполучится... у меня там всего дополнительный хидер, сишник, и mysql.h

Автор: newbee 7.2.2012, 12:49
Makefile модифицировать нельзя, он генерируется автотулзой. Полистай туториал по автотулзе, новая зависимость, исходник и внешняя библиотека должны добавляться очень просто. Если лень, просто отправь свои исходники и патчи (если есть) разработчику, он сам включит это в проект, если фича покажется нужной.

Автор: heavix 7.2.2012, 13:13
Цитата

Makefile модифицировать нельзя, он генерируется автотулзой. Полистай туториал по автотулзе, новая зависимость, исходник и внешняя библиотека должны добавляться очень просто. Если лень, просто отправь свои исходники и патчи (если есть) разработчику, он сам включит это в проект, если фича покажется нужной. 


Фича сейчас нужна мне) Спасибо) Уже читаю... но мне не нужно весь проект пересобирать... мне нужно собрать только мою тулзу... я же спокойно могу пересобрать только проект исходной утилиты, которую я модифицировал без пересборки всего проекта... если я захожу в дирикторию утилитки, там лежит makefile и makefile.in... этого достаточно чтобы сделать мейк. но есть еще директория .deps -в которой лежат файлы с расширением Po. Я так понимаю это зависимости... может достаточно просто дописать ручками? буду экспериментировать...)

Автор: xvr 7.2.2012, 13:39
Цитата(heavix @  7.2.2012,  13:13 Найти цитируемый пост)
но есть еще директория .deps -в которой лежат файлы с расширением Po.

Они генерируются автоматически

Цитата(heavix @  7.2.2012,  13:13 Найти цитируемый пост)
может достаточно просто дописать ручками?

Можете дописать, но при первом же полном билде все, что вы дописали, будет стерто  smile 


Автор: tzirechnoy 7.2.2012, 13:45
Цитата
у меня там всего дополнительный хидер, сишник, и mysql.h


Ну что, тогда доку по gnu autotools в зубы. Хидэр и сишник добавляются, скорее всего, в Makefile.am (хотя, возможно, что .am нет -- тогда в Makefile.in). Проверка на mysql и ключи компилятора для работы с mysql -- в configure.ac, примеры добавления должны быть и в доке на mysql, и во многих проектах с автоконфом, которые используют mysql. После изменения configure.ac -- запускаете autoconf (без параметров, в той жэ директории), он должэн создать configure. Makefile по-моему генерируется где-то автоматически на каком-то этап сборки, но, возможно, что и самому надо запустить automake, чтобы что-то создалось.

Автор: heavix 7.2.2012, 13:47
Цитата

Можете дописать, но при первом же полном билде все, что вы дописали, будет стерто 

Мне на это все равно - цель получить работающую тулзу... я не собираюсь распространять проект с этой фичей...

Автор: xvr 7.2.2012, 13:57
Цитата(heavix @  7.2.2012,  13:47 Найти цитируемый пост)
Мне на это все равно - цель получить работающую тулзу... я не собираюсь распространять проект с этой фичей...

Тогда напрямую пропишите в makefile. Po править не надо

Автор: heavix 7.2.2012, 18:05
Разобрался))) Всем огромное спасибо за участие) 
Скопировал к себе в директорию Makefile.am, и подправил, тут же указал пути к инклудам и либам мускула...
добавил в Makefile.am - глобального проекта еще один путь подпроекта... и в файле  configure.in добавил еще одну цель...
сказал autoconf, за тем automake, потом configure... - и вуаля - сгенерился мейк файл. теперь мейк и мое счастье))))

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