X.Org является реализацией X11, доступной в Коллекции Портов. Если ваше приложение зависит от компонентов X, установите в переменную USE_XORG в перечень требуемых компонентов. К настоящему времени доступными компонентами являются:
bigreqsproto compositeproto damageproto dmx dmxproto dri2proto evieproto fixesproto fontcacheproto fontenc fontsproto fontutil glproto ice inputproto kbproto libfs oldx pciaccess pixman printproto randrproto recordproto renderproto resourceproto scrnsaverproto sm trapproto videoproto x11 xau xaw xaw6 xaw7 xbitmaps xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil xprintutil xproto xproxymngproto xrandr xrender xres xscrnsaver xt xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm.
Всегда актуальный перечень можно найти в /usr/ports/Mk/bsd.xorg.mk.
Проект Mesa является попыткой обеспечить свободную реализацию OpenGL. Вы можете указать зависимость от различных компонентов этого проекта при помощи переменной USE_GL. Действительные опции: glut, glu, glw, glew, gl и linux. Для обратной совместимости значение yes соответствует glu.
Некоторые порты определяют USE_XLIB, которая делает порт зависимым ото всех 50 или около того библиотек. Эта переменная существует для обратной совместимости, т.к. предшествует модульному X.Org, и не должна использоваться в новых портах.
Таблица 6-5. Переменные для портов, использующих X
USE_XLIB | Порт использует библиотеки X. Является устаревшим - используйте вместо этого список компонентов X.Org в переменной USE_XORG. |
USE_IMAKE | Порт использует imake. |
XMKMF | Задаётся маршрут до xmkmf, если он отсутствует в переменной окружения PATH. По умолчанию это xmkmf -a. |
Таблица 6-6. Переменные, определяющие зависимости от отдельных частей X11
X_IMAKE_PORT | Порт, предоставляющий imake и несколько других утилит, используемых при построении X11. |
X_LIBRARIES_PORT | Порт, предоставляющий библиотеки X11. |
X_CLIENTS_PORT | Порт, предоставляющий клиентов X. |
X_SERVER_PORT | Порт, предоставляющий сервер X. |
X_FONTSERVER_PORT | Порт, предоставляющий сервер шрифтов. |
X_PRINTSERVER_PORT | Порт, предоставляющий сервер печати. |
X_VFBSERVER_PORT | Порт, предоставляющий сервер виртуального фреймбуфера. |
X_NESTSERVER_PORT | Порт, предоставляющий вложенный сервер X. |
X_FONTS_ENCODINGS_PORT | Порт, предоставляющий кодировки для шрифтов. |
X_FONTS_MISC_PORT | Порт, предоставляющий прочие растровые шрифты. |
X_FONTS_100DPI_PORT | Порт, предоставляющий 100dpi растровые шрифты. |
X_FONTS_75DPI_PORT | Порт, предоставляющий 75dpi растровые шрифты. |
X_FONTS_CYRILLIC_PORT | Порт, предоставляющий кириллические растровые шрифты. |
X_FONTS_TTF_PORT | Порт, предоставляющий шрифты TrueType®. |
X_FONTS_TYPE1_PORT | Порт, предоставляющий шрифты Type1. |
X_MANUALS_PORT | Порт, предоставляющий страницы справочника, предназначенные для разработчиков. |
Если вашему порту требуется Motif, задайте переменную USE_MOTIF в файле Makefile. Реализация Motif, используемая по умолчанию, находится в x11-toolkits/open-motif. Пользователи вместо этого могут выбрать x11-toolkits/lesstif через установку переменной WANT_LESSTIF.
Переменная MOTIFLIB будет установлена в bsd.port.mk, чтобы ссылаться на соответствующую библиотеку Motif. Пожалуйста, измените исходные тексты вашего порта на использование ${MOTIFLIB} везде, где упоминается библиотека Motif, в первоначальном Makefile или Imakefile.
Существует два общих случая:
Если порт обращается к библиотеке Motif как -lXm в своих файлах Makefile или Imakefile, просто подставьте вместо этих обращений ${MOTIFLIB}.
Если порт использует XmClientLibs в своем файле Imakefile, измените это обращение на ${MOTIFLIB} ${XTOOLLIB} ${XLIB}.
Заметьте, что переменная MOTIFLIB (как правило) раскрывается в -L/usr/local/lib -lXm или /usr/local/lib/libXm.a, так что нет нужды впереди добавлять -L или -l.
Если ваш порт устанавливает шрифты для X Window System, поместите их в каталог LOCALBASE/lib/X11/fonts/local.
Некоторые приложения для успешной компиляции требуют наличие работающего дисплея X11. Это создает проблему для машин, которые работают в режиме headless. При использовании следующего канонического хака инфраструктура построения запустит сервер X в виртуальном фреймбуфере. Затем переменная работающего DISPLAY передается при построении.
USE_DISPLAY= yes
Элементы рабочего стола (стандарта Freedesktop) предоставляют способ автоматической настройки функций рабочего стола при установке новой программы, не требуя вмешательства пользователя. Например, новые программы автоматически отображаются в меню приложений совместимых окружений рабочего стола. Элементы рабочего стола изначально появились в окружении рабочего стола GNOME, но в настоящее время являются стандартом и также работают с KDE и Xfce. Такая небольшая автоматизация предоставляет реальное удобство для пользователя, и посему элементы рабочего стола приветствуются в приложениях, которые можно использовать в окружении рабочего стола.
Порты, включающие предопределенные файлы *.desktop, должны включать эти файлы в pkg-plist и устанавливать их в каталог $LOCALBASE/share/applications. Для установки этих файлов используется макрос INSTALL_DATA.
Элементы рабочего стола можно легко создавать для приложений, используя переменную DESKTOP_ENTRIES. Будет автоматически создан, установлен и добавлен в pkg-plist файл с названием name.desktop. Синтаксис:
DESKTOP_ENTRIES= "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify
Перечень возможных категорий доступен на вебсайте Freedesktop. StartupNotify отобразит, поддерживает ли приложение уведомления о запуске. Как правило, это графический индикатор часы вместо указателя мыши, меню или панель, которые уведомляют пользователя о загрузке программы. Программа, поддерживающая уведомления о запуске, очистит этот индикатор после запуска. Программы, несовместимые с уведомлениями о запуске, не будут очищать индикатор (возможно, вызывая путаницу и приводя пользователей в бешенство), и поэтому должны иметь StartupNotify в выключенном состоянии false; тогда индикатор не будет отображаться совсем.
Пример:
DESKTOP_ENTRIES= "ToME" "Roguelike game based on JRR Tolkien's work" \ "${DATADIR}/xtra/graf/tome-128.png" \ "tome -v -g" "Application;Game;RolePlaying;" \ false
Пред. | Начало | След. |
Использование Perl | Уровень выше | Использование GNOME |