在 Ports 套件中提供的 X11 实现是 X.Org。
如果您的应用程序用到了 X 组件, 则应将
USE_XORG
设为所需要的那些组件。
目前可用的组件包括:
bigreqsproto compositeproto damageproto dmx dmxproto
evieproto fixesproto fontcacheproto fontenc fontsproto fontutil
glproto ice inputproto kbproto libfs oldx printproto randrproto
recordproto renderproto resourceproto scrnsaverproto sm trapproto
videoproto x11 xau xaw xaw6 xaw7 xaw8 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 xpr oto xproxymngproto xrandr xrender xres xscrnsaver xt
xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm
.
最新的列表, 可以在
/usr/ports/Mk/bsd.xorg.mk
中找到。
The Mesa Project 是一个致力于自由的 OpenGL
实现的计划。 您可以使用 USE_GL
变量来让 port 依赖其不同的组件。
可用的选项包括: glut, glu, glw, glew, gl
和
linux
。 为了实现向前兼容,
当使用 yes
时系统会自动将其映射为 glu
。
许多 ports 会定义 USE_XLIB
,
这会导致 port 依赖 50 多个动态连接库。 由于它出现于 X.org
模块化之前, 因此这个变量仅为向前兼容的原因提供,
新的 port 不应再使用它。
USE_XLIB | 此 port 用到了 X 库。 已过时 - 您应使用 USE_XORG 变量列出用到的
X.Org 组件, 而不是使用这个变量。 |
USE_IMAKE | 此 port 用到了 imake 。 |
USE_X_PREFIX | 已过时。 目前其作用与
USE_XLIB 相同, 并可以直接用后者替换。 |
XMKMF | 设置为 xmkmf 的完整路径名, 如果它不在
PATH 中的话。 默认值是 xmkmf
-a 。 |
X_IMAKE_PORT | 用以提供 imake 以及许多其它用于联编
X11 的工具的 port。 |
X_LIBRARIES_PORT | 用以提供 X11 库的 port。 |
X_CLIENTS_PORT | 用以提供 X 客户的 port。 |
X_SERVER_PORT | 用以提供 X 服务的 port。 |
X_FONTSERVER_PORT | 用以提供字体服务的 port。 |
X_PRINTSERVER_PORT | 用以提供打印服务的 port。 |
X_VFBSERVER_PORT | 用以提供在虚拟帧缓存服务(virtual framebuffer server) 的 port。 |
X_NESTSERVER_PORT | 用以提供嵌套 X 服务的 port。 |
X_FONTS_ENCODINGS_PORT | 用以为字体提供编码的 port。 |
X_FONTS_MISC_PORT | 用以提供多种位图字体的 port。 |
X_FONTS_100DPI_PORT | 用以提供 100dpi 位图字体的 port。 |
X_FONTS_75DPI_PORT | 用以提供 75dpi 位图字体的 port。 |
X_FONTS_CYRILLIC_PORT | 用以提供西里尔位图字体的 port。 |
X_FONTS_TTF_PORT | 用以提供 TrueType® 字体的 port。 |
X_FONTS_TYPE1_PORT | 用以提供 Type1 字体的 port。 |
X_MANUALS_PORT | 用以提供面向开发人员的联机手册的 port。 |
如果您的 port 需要 Motif 库, 则应在
Makefile
中定义 USE_MOTIF
。
默认的 Motif 实现是
x11-toolkits/open-motif
。
用户可以通过设置 WANT_LESSTIF
变量来选择
x11-toolkits/lesstif
代替它。
bsd.port.mk
会将 MOTIFLIB
变量设置为到合适的 Motif 库的引用。 请使用补丁将您 port 中
Makefile
或
Imakefile
提到 Motif
库的地方改为 ${MOTIFLIB}
。
有两种比较常见的情况:
如果 port 中将 Motif 在其 Makefile
或
Imakefile
表达为
-lXm
, 则简单地将其替换为
${MOTIFLIB}
。
如果 port 在其 Imakefile
中使用 XmClientLibs
, 则将其改为
${MOTIFLIB} ${XTOOLLIB}
${XLIB}
.
注意 MOTIFLIB
(通常) 会展开为
-L/usr/X11R6/lib -lXm
或
/usr/X11R6/lib/libXm.a
, 所以不需要在其前加入
-L
或 -l
。
某些应用程序必须在有可用的 X11 显示的时候才能成功编译。
当编译的机器没有控制台时, 这会带来问题。 为了解决这个问题,
如果定义了适当的变量, 联编基础设施会启动采用虚拟帧缓存的
X server。 此时, 编译过程中将会传出可用的 DISPLAY
。
通过利用
DESKTOP_ENTRIES
变量,
可以很容易地在您的 port 中创建桌面项 (Freedesktop
标准)。 这些项会在类似 GNOME 或 KDE
这样的符合这一标准的桌面环境中显示在应用程序菜单中。
这样做会自动创建、 安装 .desktop
文件, 并将其加入
pkg-plist
。 其语法为:
您可以在
Freedesktop 网站上 找到可用的分类名称。 StartupNotify
表示应用程序在支持启动通知的环境中清除状态信息。
例子:
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.