Что предпочтительный путь состоит в том, чтобы создать программное обеспечение в BSDs?

Для хранения команды можно использовать функцию:

В любой подобной Границе оболочке, но bash:

mycommand() /path/to/some/command some fixed args "$@"
mycommand other args

В bash, Вам нужны фигурные скобки:

mycommand() { /path/to/some/command some fixed args "$@";}

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

Если Вы - a csh наркоман, Вы могли также использовать alias.

Можно использовать переменную в качестве в:

mycommand=/path/to/some/command

но помните это в каждой оболочке, но zsh, необходимо заключить расширение в кавычки:

"$mycommand" its args

Если Вы хотите сохранить команду и больше, чем это - 0th аргумент, можно использовать массивы в оболочках, которые поддерживают их (bash и zsh сделайте),

mycommand=(/path/to/some/command some fixed args)
"${mycommand[@]}" some other args

В zsh можно сойти с рук

$mycommand some other args

пока ни один из фиксированных args не пуст.

6
25.03.2014, 10:42
3 ответа
[116123] Не уверен, что есть какой-то "официально предпочитаемый BSD" способ, но предпочитаемый мною метод - cmake. Хотя его имя вводит в заблуждение, так как он выполняет шаг настройки и генерирует файлы make, он не заменяет make или gmake. Он может генерировать как unix makefile, так и xcode, qtcreator, визуальную студию, borland и многие другие файлы проекта.[12145]Синтаксис cmake понятен и понятен. Он также предоставляет клип и gui-приложение, которые могут быть использованы для настройки параметров конфигурации, что, на мой взгляд, проще, чем добавление списка элементов после команды конфигурации.[116126]
-3
27.01.2020, 20:31

Обычно, если вы нацеливаетесь на конкретную версию BSD, вы используете BSD make (иногда известную как bmake, bsdmake или pmake). Это имеет различные предопределенные наборы правил для определенных типов целей, которые вы хотите построить.

Например, на NetBSD bsd.prog.mk обычно используется для сборки программы; вы просто объявляете имя программы и исходные файлы, и она автоматически вызывает компилятор и компоновщик с правильными настройками. Это также позволило бы интегрировать вашу программу в build.sh (программу NetBSD для сборки всей операционной системы из исходных текстов), так как она автоматически подхватит такие вещи, как DESTDIR и настройки кросс-компиляции, без необходимости делать что-нибудь особенное . Есть похожие файлы правил для сборки библиотек и так далее.

Главная преграда на пути использования этого везде заключается в том, что это кажется довольно непредсказуемым. Смотрите также эту дискуссию о преимуществах и недостатках создания BSD.

1
27.01.2020, 20:31

Я видел, что если OpenBSD использует одну из моих программ в базовой системе, они могут игнорировать сценарий настройки:

Опять же, они не могут. Это зависит от того, кто выполнял эту работу:

  • lynx (очевидно, использовал сценарий конфигурации, хотя некоторые патчи удалили проверки конфигурации ...)

Однако сценарий конфигурации допустим в области портов. Прошло довольно много времени с тех пор, как я видел, как разработчики порта создают make-файл только потому, что они не одобряют autoconf.

0
27.01.2020, 20:31

Теги

Похожие вопросы