Christopher Zimmermann <[email protected]> writes:
>
> If you add ONLY_FOR_ARCHS=${OCAML_NATIVE_DYNLINK_ARCHS}, then ok chrisz@
>
> But please do try and test non-native builds. Clearing
> OCAML_NATIVE_ARCHS and OCAML_NATIVE_DYNLINK_ARCHS in
> /usr/ports/infrastructure/mk/arch-defines.mk will allow you to build all
> ocaml ports bytecode only on any architecture.
>
For now, I am playing the following diff. It adds a FLAVOR in lang/ocaml
and an option in lang/ocaml module.
diff --git a/lang/ocaml/Makefile b/lang/ocaml/Makefile
index 37e85763fa..91f93ac26e 100644
--- a/lang/ocaml/Makefile
+++ b/lang/ocaml/Makefile
@@ -11,14 +11,9 @@
USE_NOBTCFI = Yes
# It's possible to check PLISTs for non-native archs from a
-# native arch. To do so on amd64, edit:
-#
-# /usr/ports/infrastructure/mk/arch-defines.mk
-#
-# and remove "amd64" from OCAML_NATIVE_ARCHS. Then:
-#
-# $ make clean=all
-# $ make package
+# native arch. To do so use bytecode flavor:
+#
+# $ env FLAVOR=bytecode make repackage
#
# and check if packaging worked.
@@ -42,6 +37,9 @@
.include <bsd.port.arch.mk>
+FLAVOR ?=
+FLAVORS = bytecode
+
# XXX: cannot run autoconf due to use of gnu m4 feature
# that isn't in base m4
CONFIGURE_STYLE = gnu
@@ -66,7 +64,7 @@
WANTLIB = c m pthread
-.if ${PROPERTIES:Mocaml_native}
+.if !${FLAVOR:Mbytecode} && ${PROPERTIES:Mocaml_native}
ALL_TARGET= world.opt
PKG_ARGS += -Dnative=1
diff --git a/lang/ocaml/ocaml.port.mk b/lang/ocaml/ocaml.port.mk
index 593b390715..225182c6c0 100644
--- a/lang/ocaml/ocaml.port.mk
+++ b/lang/ocaml/ocaml.port.mk
@@ -9,7 +9,9 @@
.include <bsd.port.arch.mk>
-.if ${PROPERTIES:Mocaml_native}
+MODOCAML_FORCE_BYTECODE ?= No
+
+.if ${MODOCAML_FORCE_BYTECODE:L} == no && ${PROPERTIES:Mocaml_native}
MODOCAML_NATIVE=Yes
# include nativecode base files
PKG_ARGS+= -Dnative=1
@@ -20,7 +22,7 @@
PKG_ARGS+=-Dnative=0
.endif
-.if ${PROPERTIES:Mocaml_native_dynlink}
+.if ${MODOCAML_FORCE_BYTECODE:L} == no && ${PROPERTIES:Mocaml_native_dynlink}
MODOCAML_NATDYNLINK=Yes
MODOCAML_OCAMLDOC?=ocamldoc.opt
# include native dynlink base files
With it, I could confirm that textproc/slipshow didn't build on
no-native due to (modes native) dune option used. But I think keeping
ONLY_FOR_ARCHS=${OCAML_NATIVE_DYNLINK_ARCHS} is fine, as else it might
need lot of dependencies in ${LOCALBASE}/lib/ocaml.
Regards.
--
Sebastien Marie