This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

使用 X11

6.7 使用 X11

6.7.1 变量定义

表 6-5. 用到 X 的 port 可以使用的变量

USE_X_PREFIX 此 port 将文件安装到 X11BASE_REL 而非通常的 PREFIX
USE_XLIB 此 port 用到了 X 库。
USE_MOTIF 此 port 使用 Motif 工具包。 这一变量暗含 USE_XPM 设置。
USE_IMAKE 此 port 用到了 imake。 这一变量也会自动设置 USE_X_PREFIX
XMKMF 设置为 xmkmf 的完整路径名, 如果它不在 PATH 中的话。 默认值是 xmkmf -a

表 6-6. 用于表示对 X11 某些组件的依赖关系的变量

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。

例 6-1. 在变量中使用与 X11 有关的变量

# 使用 X11 库并依赖字体服务和西里尔字体。
RUN_DEPENDS=   ${X11BASE}/bin/xfs:${X_FONTSERVER_PORT} \
               ${X11BASE}/lib/X11/fonts/cyrillic/crox1c.pcf.gz:${X_FONTS_CYRILLIC_PORT}

USE_XLIB=      yes

6.7.2 需要使用 Motif 的 port

  如果您的 port 需要 Motif 库, 则应在 Makefile 中定义 USE_MOTIF。 默认的 Motif 实现是 x11-toolkits/open-motif。 用户可以通过设置 WANT_LESSTIF 变量来选择 x11-toolkits/lesstif 代替它。

  bsd.port.mk 会将 MOTIFLIB 变量设置为到合适的 Motif 库的引用。 请使用补丁将您 port 中 MakefileImakefile 提到 Motif 库的地方改为 ${MOTIFLIB}

  有两种比较常见的情况:

  注意 MOTIFLIB (通常) 会展开为 -L/usr/X11R6/lib -lXm/usr/X11R6/lib/libXm.a, 所以不需要在其前加入 -L-l

6.7.3 X11 字体

  如果 port 将为 X Window 系统安装字体, 将这些字体放到 X11BASE/lib/X11/fonts/local

  

6.7.4 通过 Xvfb 来获得虚拟的 DISPLAY

  某些应用程序必须在有可用的 X11 显示的时候才能成功编译。 这会给 FreeBSD 预编译包构建集群带来麻烦, 因为它们是不接显示器的。 通过下面的官方 hack, 预编译包构建集群将启动采用虚拟帧缓存的 X server。 这样, 编译过程将有可用的 DISPLAY

.if defined(PACKAGE_BUILDING)
BUILD_DEPENDS+= Xvfb:${X_VFBSERVER_PORT} \
                ${X11BASE}/lib/X11/fonts/misc/8x13O.pcf.gz:${X_FONTS_MISC_PORT}
.endif

6.7.5 桌面项

  通过利用 DESKTOP_ENTRIES 变量, 可以很容易地在您的 port 中创建桌面项 (Freedesktop 标准)。 这些项会在类似 GNOME 或 KDE 这样的符合这一标准的桌面环境中显示在应用程序菜单中。 这样做会自动创建、 安装 .desktop 文件, 并将其加入 pkg-plist。 其语法为:

DESKTOP_ENTRIES=  "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify

  您可以在 Freedesktop 网站上 找到可用的分类名称。 StartupNotify 表示应用程序在支持启动通知的环境中清除状态信息。

  例子:

DESKTOP_ENTRIES=  "ToME" "Roguelike game based on JRR Tolkien's work" \
                  "${DATADIR}/xtra/graf/tome-128.png" \
                  "tome -v -g" "Application;Game;RolePlaying" \
                  false
若您有关于 FreeBSD ports 系统的问题, 请发送电子邮件至 <ports@FreeBSD.org>。
关于此文档的任何问题, 请致函 <doc@FreeBSD.org>。