Где поставить готовые двоичные файлы с automake? - PullRequest
1 голос
/ 11 апреля 2011

Я пишу этот вопрос частично на основе связанного вопроса о вспомогательных скриптах .

У меня есть программная система C ++, созданная с помощью автоинструментов.Для небольшой части своей функциональности моя система использует встроенный двоичный файл с закрытым исходным кодом: AMPL .Я в свободном доступе студенческой версии их программного обеспечения.Предположим, имя двоичного файла AMPL, который я вызываю из моего кода C ++, - ampl-student.Я запускаю его из своего кода с помощью вызова system(...).

Я бы хотел, чтобы ampl-student был перемещен в /usr/bin вместе с двоичным файлом моего скомпилированного кода C ++ при запуске "make install".Где в Makefile.am я должен добавить ampl-student.Должен ли я просто добавить его в переменную bin_PROGRAMS?

С этим вопросом можно связать ampl-student в /usr/bin.Есть ли более подходящее место для «вспомогательного двоичного файла»?

Я думаю, что это, в общем-то, плохая идея, поскольку распространение готового двоичного файла вместе с кодом не гарантирует, что двоичный файл будет работатьна компьютере конечного пользователя.Но в этом случае пользовательская база очень мала, и я случайно знаю, что все они используют одинаковые конфигурации системы.Таким образом, мы на самом деле используем пакет deb как способ информировать всех о новых выпусках системы программного обеспечения.

Редактировать 1: Я должен подчеркнуть, что вопрос в первую очередь задаетгде указать ampl-student в файле Makefile.am , используемом autotools.

Ответы [ 2 ]

6 голосов
/ 11 апреля 2011

Я бы установил его в $(pkglibexecdir):

pkglibexec_PROGRAMS = ampl-student

# If you need to know the path in your code
AM_CPPFLAGS = -DPKGLIBEXECDIR=\"$(pkglibexecdir)\"

Это на самом деле не пользовательская программа, поэтому она устанавливает ее где-то в стороне.По умолчанию это будет $(prefix)/libexec/$(package).

0 голосов
/ 11 апреля 2011

Это действительно зависит от того, хотите ли вы отправить программное обеспечение или оно будет установлено локально в / usr / bin, и все пользователи будут получать доступ к программному обеспечению оттуда.

  1. Если вы собираетесь установить его в / usr / bin и хотите добавить туда AMPL, определите символическую константу для пути и используйте ее.
    #define AMPL / usr / bin / amp-student
    любой исходный файл, который вы хотите использовать, вы можете добавить,
    system (AMPL);
  2. Если вы хотитепоставьте двоичный код вашего кода, затем вы должны поместить amp-bin в каталог bin вашего программного обеспечения или создать каталог.структура как:

<ваш инструмент> / src
<ваш инструмент> / bin - вы можете также добавить amp-student здесь
<ваш инструмент> / сторонний / .... / bin / вы можете поместить amp-student здесь

Как вы правильно упомянули, прежде чем распространять amp-student, убедитесь, что он работает на всех платформах, где предполагается запускать инструмент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...