GoGPT Best VPN GoSearch

OnWorks 网站图标

ocaml.m4 - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 ocaml.m4

这是 ocaml.m4 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


ocaml.m4 - OCaml 的 Autoconf 宏

概要


AC_PROG_OAML
AC_PROG_FINDLIB
AC_PROG_OAMLLEX
AC_PROG_OCAMLYACC
AC_PROG_CAMLP4
AC_CHECK_OCAML_PKG([名称])
AC_CHECK_OCAML_MODULE(变量,名称,模块,包括路径)
AC_CHECK_OAML_WORD_SIZE

商品描述


ocaml.m4 是一个包含用于检测 OCaml 的标准的、有用的 autoconf 宏的文件,
findlib、OCaml 包等在自动配置生成的 ./configure 脚本中。

要开始使用这些宏,您需要复制“ocaml.m4”文件(通常位于
"/usr/share/aclocal/ocaml.m4") 到项目中的 autoconf 宏目录。 一般
这是您项目中的“m4/”目录,但可以使用
“AC_CONFIG_MACRO_DIR(DIR)”指令。 如果您刚刚创建了“m4/”目录,那么
您可能还需要执行以下操作:

本地-I m4

然后,您可以将下面描述的任何宏添加到您的“configure.ac”(或
“configure.in”)。 几乎每个 OCaml 项目都应该首先使用“AC_PROG_OCAML”
“AC_PROG_FINDLIB”紧随其后。

本手册页不描述如何使用 autoconf。 为此,您应该阅读
详细的 autoconf 信息文件(“info autoconf”)。

AC_PROG_OAML


该宏检测常用 OCaml 工具链中的哪些工具可用。 它定义和
替换以下变量:

OCAMLC 设置为字节码编译器的名称
(例如“ocamlc”或“ocamlc.opt”),或“否”,如果
没有找到 OCaml 安装
OCAMLOPT 本机代码编译器的名称,例如。 "ocamlopt",
“ocamlopt.opt”或“否”
OCAMLBEST“字节”(如果只有字节码编译器可用)
或“选择”(如果字节码和本机代码编译器
可用)
OCAMLDEP 依赖解析器的名称,例如。 “奥马尔德普”
OCAMLMKTOP ocamlmktop 的名称
OCAMLMKLIB ocamlmklib 的名称
OCAMLDOC ocamldoc 的名称
OCAMLBUILD ocamlbuild 的名称
OCAMLLIB OCaml 库路径(例如 C )
OCAMLVERSION 编译器版本(例如 C<3.11.0>)

检测 if OCaml is 安装
与这些宏的旧版本不同,“AC_PROG_OCAML”不会 而不去 如果没有 OCaml 则退出
检测到安装。 因此,如果您想检测是否安装了 OCaml,您有
做这样的事情:

AC_PROG_OAML
如果测试“$OCAMLC”=“否”; 然后
AC_MSG_ERROR([你必须安装OCaml编译器])
fi

此行为和使用模式与“AC_PROG_*”的其他宏一致)
家庭。

交叉编译
如果调用配置脚本进行交叉编译,则“AC_PROG_OCAML”将检测
OCaml 编译器的交叉编译器版本,例如。 “OCAMLC=i686-pc-mingw32-ocamlc”
等等。这是自动发生的,对于大多数目的,您无需担心。

AC_PROG_FINDLIB


该宏检查 ocamlfind 程序(findlib 的一部分)是否存在。 它定义了
并将“OCAMLFIND”替换为 ocamlfind 程序的名称,如果未找到,则替换为“no”。

请注意,如果未找到 ocamlfind,此宏不会失败。 如果你想强制
用户安装 findlib,你应该这样做:

AC_PROG_FINDLIB
如果测试“$OCAMLFIND”=“否”; 然后
AC_MSG_ERROR([你必须安装 OCaml findlib (ocamlfind 命令)])
fi

另见“AC_CHECK_OCAML_PKG”。

AC_PROG_OAMLLEX


这会检查 ocamllex 程序并将“OCAMLLEX”设置为程序的名称(例如。
“ocamllex”或“ocamllex.opt”),如果未找到,则为“否”。

AC_PROG_OCAMLYACC


这会检查 ocamlyacc 程序并将“OCAMLYACC”设置为程序名称,或者
如果未找到,则为“否”。

AC_PROG_CAMLP4


这会检查camlp4,并检查版本是否与找到的编译器版本匹配
之前。 它将“CAMLP4”设置为基本camlp4程序的名称,否则设置为“no”
找到。

该宏还会检查camlp4 套件的其他工具,如camlp4o、camlp4orf 等。
对于它们中的每一个,一个完全大写的变量被设置为工具名称(如果不是,则为“否”
成立); 填充 .in 文件时,所有变量都会被替换。 完整的工具列表
和各自的变量名称如下:

CAMLP4 CAMLP4
CAMLP4boot CAMLP4BOOT
CAMLP4O CAMLP4O
CAMLP4OF的camlp4
CAMLP4OOF CAMLP4OOF
CAMLP4ORF CAMLP4ORF
CAMLP4PROF CAMLP4PROF
CAMLP4R CAMLP4R
CAMLP4RF CAMLP4RF

AC_CHECK_OAML_PKG


这是可用于检测 OCaml findlib 包是否存在的主要宏。
这个宏使用 ocamlfind 来查找 findlib 包(因此需要 findlib
本身已经安装,并且包已经正确打包了一个 META
文件等)如果你想找到一个尚未安装的 OCaml findlib 包
findlib 那么你应该尝试使用“AC_CHECK_OCAML_MODULE”代替。

AC_CHECK_OCAML_PKG([名称])

检查具有给定名称的 OCaml findlib 包。 如果找到,它定义和
替换变量“OCAML_PKG_name”,其中“名称”部分被替换为
包名称通过用下划线替换所有破折号。

例如,

AC_CHECK_OCAML_PKG([xml-light])

将“OCAML_PKG_xml_light”设置为“xml-light”或“no”。

如果未安装软件包,要使配置脚本失败,请执行以下操作:

AC_CHECK_OAML_PKG([foo])
如果测试 "$OCAML_PKG_foo" = "no"; 然后
AC_MSG_ERROR([请安装 OCaml findlib 模块 'foo'。])
fi

在您的 Makefile.in 中,将替换变量与 ocamlfind 结合使用,例如:

.ml.cmo:
$(OCAMLFIND) ocamlc -package @OCAML_PKG_foo@ -c $< -o $@

请注意,在替换变量中,破折号也被下划线替换。

检查 HPMC胶囊 替代 查找库 名称
在(不太可能)相同库对应不同 findlib 包的情况下
不同系统上的名称,您可以通过检查替代方案来提高可移植性
将第二个参数传递给“AC_CHECK_OCAML_PKG”的名称:

AC_CHECK_OCAML_PKG(PKGNAME,替代名称)

如果找到“PKGNAME”,则行为与以前相同。 否则所有名字在
"ALTERNATIVE-NAMES" 依次作为 findlib 包名称进行测试。 如果找到了,就是
设置为宏设置的值并在 .in 文件中替换; 否则设置“否”。

请注意,变量名称由“PKGNAME”决定,而值取决于
找到了实际的替代名称。

例如,要检测名为“zip”或“camlzip”的 camlzip findlib 包,以及
要将找到的值存储在“OCAML_PKG_zip”变量中,您可以在 configure.ac 中执行:

AC_CHECK_OCAML_PKG(zip,camlzip)

并有一个可移植的 Makefile.in 构建行,例如:

.ml.cmo:
$(OCAMLFIND) ocamlc -package @OCAML_PKG_zip@ -c $< -o $@

AC_CHECK_OCAML_MODULE(变量,名称,模块,包括路径)


“AC_CHECK_OCAML_MODULE”是“AC_CHECK_OCAML_PKG”的更复杂的替代品。 你应该
如果可能,请始终使用“AC_CHECK_OCAML_PKG”和 ocamlfind/findlib。

参数为:

变量
这是设置的环境变量。 它将被设置为包含
路径,如果未找到模块,则为“否”。

您的姓名
这是我们要查找的模块的名称。 该参数仅用于
打印消息,并且不影响模块的查找方式。

模块
这应该是一个 OCaml 模块名称,代表正在查找的模块名称。
您可以将子模块放在这里,例如。 “日历库.日期”

包含路径
这是要搜索的包含目录的默认列表,例如。 “+日历”

例如,以下代码将检查 OCaml 日历模块,并将
区分此模块的版本 1 和版本 2(具有不兼容的 API)。

AC_CHECK_OCAML_PKG(日历)
AC_CHECK_OCAML_MODULE(is_calendar2,日历,[CalendarLib.Date],[+日历])

上述代码运行后,变量“OCAML_PKG_calendar”和“is_calendar2”将变为
设置如下:

OCAML_PKG_calendar is_calendar2 结果

是 +calendar Calendar v2 已安装
是 否 已安装 Calendar v1
no no 没有安装日历模块

AC_CHECK_OAML_WORD_SIZE


这会检查 OCaml 编译器的字长,并将“OCAML_WORD_SIZE”设置为 32
或64。

使用 onworks.net 服务在线使用 ocaml.m4


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。