This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
表 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。 |
如果您的 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 显示的时候才能成功编译。 这会给 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
通过利用 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