git: c79c88017bf5 - main - Mk/**ocaml.mk: Convert remaining bsd.ocaml.mk to Uses/ocaml.mk

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Tue, 31 Dec 2024 07:42:25 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c79c88017bf5ed4603cd14c2890910f40f53c847

commit c79c88017bf5ed4603cd14c2890910f40f53c847
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2024-12-30 21:21:06 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2024-12-31 07:41:54 +0000

    Mk/**ocaml.mk: Convert remaining bsd.ocaml.mk to Uses/ocaml.mk
    
    - Instead of USE_OCAML=yes use USES=ocaml. If empty USES=ocaml implies
      build and run
    - Instead of USE_OCAMLFIND_PLIST use USES=ocaml:findplist which also
      implies USES=ocaml:findlib
    - Instead of USE_OCAML_CAMLP4 use USES=ocaml:camlp4
    - Instead of USE_OCAML_FINDLIB use USES=ocaml:findlib
    - Instead of USE_OCAML_LDCONFIG use USES=ocaml:ldconfig
    - Instead of USE_OCAML_WASH use USES=ocaml:wash
    - Instead of NO_OCAML_BUILDDEPENDS use USES=ocaml:run
    - Instead of NO_OCAML_RUNDDEPENDS use USES=ocaml:build
    - Instead of USE_OCAML_TK use USES=ocaml:tk which actually implies
      USES=ocaml:tkbuild and USES=ocaml:tkrun
    - Instead of NO_OCAMLTK_BUILDDEPENDS use USES=ocaml:tkrun
    - Instead of NO_OCAMLTK_RUNDEPENDS use USES=ocaml:tkbuild
    - USES=ocaml:dune remains unchanged
    - Prepare to add/remove keywords easily
    
    Approved by: mat (portmgr)
    Reviewed by: freebsd@dev.thsi.be
    Differential Revision: https://reviews.freebsd.org/D48227
---
 CHANGES                                  |  32 +++-
 Mk/Uses/ocaml.mk                         | 298 ++++++++++++++++++++++++++++---
 Mk/bsd.ocaml.mk                          | 198 --------------------
 Mk/bsd.port.mk                           |  11 --
 Mk/bsd.sanity.mk                         |  16 +-
 archivers/ocaml-bz2/Makefile             |   4 +-
 archivers/ocaml-zip/Makefile             |   7 +-
 converters/ocaml-base64/Makefile         |   3 +-
 converters/ocaml-jsonm/Makefile          |   3 +-
 databases/ocaml-dbm/Makefile             |   3 +-
 databases/ocaml-mysql/Makefile           |   7 +-
 databases/ocaml-sqlite3/Makefile         |   5 +-
 devel/aifad/Makefile                     |   1 -
 devel/coccinelle/Makefile                |   4 +-
 devel/menhir/Makefile                    |   1 -
 devel/ocaml-annexlib/Makefile            |   7 +-
 devel/ocaml-astring/Makefile             |   3 +-
 devel/ocaml-base/Makefile                |   4 +-
 devel/ocaml-bos/Makefile                 |   3 +-
 devel/ocaml-calendar/Makefile            |   6 +-
 devel/ocaml-camljava/Makefile            |   2 +-
 devel/ocaml-camlp-streams/Makefile       |   1 -
 devel/ocaml-camlp4/Makefile              |   3 +-
 devel/ocaml-camlp5/Makefile              |   3 +-
 devel/ocaml-camomile/Makefile            |   3 +-
 devel/ocaml-cfg/Makefile                 |   2 +-
 devel/ocaml-classes/Makefile             |   5 +-
 devel/ocaml-cmdliner/Makefile            |   5 +-
 devel/ocaml-compiler-libs/Makefile       |   1 -
 devel/ocaml-cppo/Makefile                |   2 +-
 devel/ocaml-csexp/Makefile               |   1 -
 devel/ocaml-cstruct/Makefile             |   4 +-
 devel/ocaml-curses/Makefile              |   4 +-
 devel/ocaml-dolmen/Makefile              |   1 -
 devel/ocaml-domain-name/Makefile         |   1 -
 devel/ocaml-dune/Makefile                |   5 +-
 devel/ocaml-extlib/Makefile              |   7 +-
 devel/ocaml-findlib/Makefile             |   5 +-
 devel/ocaml-fmt/Makefile                 |   3 +-
 devel/ocaml-fpath/Makefile               |   4 +-
 devel/ocaml-gen/Makefile                 |   1 -
 devel/ocaml-hmap/Makefile                |   3 +-
 devel/ocaml-ipaddr/Makefile              |   1 -
 devel/ocaml-lacaml/Makefile              |   4 +-
 devel/ocaml-linol/Makefile               |   1 -
 devel/ocaml-logs/Makefile                |   3 +-
 devel/ocaml-lsp/Makefile                 |   2 -
 devel/ocaml-lwt/Makefile                 |   4 +-
 devel/ocaml-magic/Makefile               |   5 +-
 devel/ocaml-mtime/Makefile               |   4 +-
 devel/ocaml-ocamlbuild/Makefile          |   3 +-
 devel/ocaml-ocplib-endian/Makefile       |   1 -
 devel/ocaml-octavius/Makefile            |   1 -
 devel/ocaml-ounit/Makefile               |   1 -
 devel/ocaml-parmap/Makefile              |   5 +-
 devel/ocaml-parsexp/Makefile             |   1 -
 devel/ocaml-pcre/Makefile                |   5 +-
 devel/ocaml-pcre2/Makefile               |   4 +-
 devel/ocaml-pomap/Makefile               |   2 +-
 devel/ocaml-pp_loc/Makefile              |   1 -
 devel/ocaml-ppx-tools/Makefile           |   7 +-
 devel/ocaml-ppx_blob/Makefile            |   1 -
 devel/ocaml-ppx_compare/Makefile         |   1 -
 devel/ocaml-ppx_derivers/Makefile        |   1 -
 devel/ocaml-ppx_deriving/Makefile        |   1 -
 devel/ocaml-ppx_hash/Makefile            |   1 -
 devel/ocaml-ppx_js_style/Makefile        |   1 -
 devel/ocaml-ppx_sexp_conv/Makefile       |   1 -
 devel/ocaml-ppx_yojson_conv/Makefile     |   1 -
 devel/ocaml-ppx_yojson_conv_lib/Makefile |   1 -
 devel/ocaml-ppxlib/Makefile              |   1 -
 devel/ocaml-psmt2-frontend/Makefile      |   1 -
 devel/ocaml-re/Makefile                  |   1 -
 devel/ocaml-react/Makefile               |   7 +-
 devel/ocaml-res/Makefile                 |   2 +-
 devel/ocaml-result/Makefile              |   3 +-
 devel/ocaml-rresult/Makefile             |   3 +-
 devel/ocaml-sdl/Makefile                 |   8 +-
 devel/ocaml-sem/Makefile                 |   6 +-
 devel/ocaml-sexplib/Makefile             |   1 -
 devel/ocaml-sexplib0/Makefile            |   1 -
 devel/ocaml-stdio/Makefile               |   4 +-
 devel/ocaml-topkg/Makefile               |   4 +-
 devel/ocaml-trace/Makefile               |   2 -
 devel/ocaml-type_conv/Makefile           |   7 +-
 devel/ocaml-uchar/Makefile               |   2 +-
 devel/ocaml-ulex/Makefile                |   7 +-
 devel/ocaml-uutf/Makefile                |   4 +-
 devel/ocaml-xstr/Makefile                |   7 +-
 devel/ocaml-xstrp4/Makefile              |   7 +-
 devel/omake/Makefile                     |   4 +-
 ftp/ocaml-ocurl/Makefile                 |   7 +-
 games/freetennis/Makefile                |   3 +-
 graphics/ocaml-cairo/Makefile            |   4 +-
 graphics/ocaml-images/Makefile           |   4 +-
 graphics/ocaml-lablgl/Makefile           |   6 +-
 lang/mtasc/Makefile                      |   4 +-
 lang/ocaml-camlidl/Makefile              |   3 +-
 lang/ott/Makefile                        |   5 +-
 math/alt-ergo/Makefile                   |   2 -
 math/coq/Makefile                        |   5 +-
 math/facile/Makefile                     |   4 +-
 math/ocaml-farith/Makefile               |   1 -
 math/ocaml-num/Makefile                  |   3 +-
 math/ocaml-ocamlgraph/Makefile           |   3 +-
 math/ocaml-ocplib-simplex/Makefile       |   1 -
 math/ocaml-zarith/Makefile               |   6 +-
 math/ocamlgsl/Makefile                   |   4 +-
 math/orpie/Makefile                      |   1 -
 math/teyjus/Makefile                     |   3 +-
 net-p2p/mldonkey/Makefile                |   4 +-
 net/unison/Makefile                      |   4 +-
 net/unison240/Makefile                   |   5 +-
 net/unison248/Makefile                   |   4 +-
 net/unison251/Makefile                   |   4 +-
 print/texvc/Makefile                     |   5 +-
 science/kalzium/Makefile                 |   4 +-
 security/ocaml-cryptgps/Makefile         |   6 +-
 security/ocaml-cryptokit/Makefile        |   4 +-
 security/ocaml-lwt_ssl/Makefile          |   1 -
 security/ocaml-ssl/Makefile              |   4 +-
 sysutils/ledit/Makefile                  |   3 +-
 textproc/ocaml-csv/Makefile              |   7 +-
 textproc/ocaml-expat/Makefile            |   9 +-
 textproc/ocaml-spelll/Makefile           |   1 -
 textproc/ocaml-text/Makefile             |   8 +-
 textproc/ocaml-yojson/Makefile           |   1 -
 textproc/sexp/Makefile                   |   1 -
 x11-toolkits/ocaml-graphics/Makefile     |   4 +-
 x11-toolkits/ocaml-lablgtk2/Makefile     |   7 +-
 x11-toolkits/ocaml-lablgtk3/Makefile     |   6 +-
 x11-toolkits/ocaml-labltk/Makefile       |   5 +-
 132 files changed, 433 insertions(+), 561 deletions(-)

diff --git a/CHANGES b/CHANGES
index fcea611bda78..d5c37f30f68e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,28 @@ in the release notes and/or placed into UPDATING.
 
 All ports committers are allowed to commit to this file.
 
+20241231:
+AUTHOR: bofh@FreeBSD.org
+
+  Converted remaining bsd.ocaml.mk to Uses/ocaml.mk
+
+  - Instead of USE_OCAML=yes use USES=ocaml. If empty USES=ocaml implies
+    build and run
+  - Instead of USE_OCAMLFIND_PLIST use USES=ocaml:findplist which also
+    implies USES=ocaml:findlib
+  - Instead of USE_OCAML_CAMLP4 use USES=ocaml:camlp4
+  - Instead of USE_OCAML_FINDLIB use USES=ocaml:findlib
+  - Instead of USE_OCAML_LDCONFIG use USES=ocaml:ldconfig
+  - Instead of USE_OCAML_WASH use USES=ocaml:wash
+  - Instead of NO_OCAML_BUILDDEPENDS use USES=ocaml:run
+  - Instead of NO_OCAML_RUNDDEPENDS use USES=ocaml:build
+  - Instead of USE_OCAML_TK use USES=ocaml:tk which actually implies
+    USES=ocaml:tkbuild and USES=ocaml:tkrun
+  - Instead of NO_OCAMLTK_BUILDDEPENDS use USES=ocaml:tkrun
+  - Instead of NO_OCAMLTK_RUNDEPENDS use USES=ocaml:tkbuild
+  - USES=ocaml:dune remains unchanged
+  - Prepare to add/remove keywords easily
+
 20240408:
 AUTHOR: flo@FreeBSD.org
 
@@ -442,7 +464,7 @@ AUTHOR: tcberner@FreeBSD.org
   Ports that depend on mlt should now use USES=mlt:<version> to specify
   their dependency.
 
-  At the moment the supported version is 6, but will be extended to also 
+  At the moment the supported version is 6, but will be extended to also
   allow for selection of mlt 7 shortly.
 
 20210604:
@@ -501,8 +523,8 @@ AUTHOR: pauamma@gundo.com
   purpose, such as:
   * course-writing or course-delivery applications,
   * classroom or school management applications (eg, scheduling classes),
-  * applications, utilities, or games primarily or substantially designed 
-    to help the user learn a specific topic or study in general, like typing 
+  * applications, utilities, or games primarily or substantially designed
+    to help the user learn a specific topic or study in general, like typing
     tutors, flashcard applications, or educational games.
 
 20201110:
@@ -593,7 +615,7 @@ AUTHOR: mat@FreeBSD.org
 
   USES=lua sets LUA_FLAVOR that needs to be used on all dependencies of
   flavored lua ports, in a similar way as PHP or Python flavors.
-  
+
 20200115:
 AUTHOR: bapt@FreeBSD.org
 
@@ -605,7 +627,7 @@ AUTHOR: bapt@FreeBSD.org
 
   The ipv6 virtual category is gone, it does not make sense anymore in 2019
   where the norm in applications is to have support both ipv4 and ipv6.
-  
+
 20191001:
 AUTHOR: bapt@FreeBSD.org
 
diff --git a/Mk/Uses/ocaml.mk b/Mk/Uses/ocaml.mk
index 666c29078c19..fed0026ff72d 100644
--- a/Mk/Uses/ocaml.mk
+++ b/Mk/Uses/ocaml.mk
@@ -1,38 +1,186 @@
-# Provide support to use the Dune package builder for OCaml
+# Provide support for OCaml
+# Feature:	ocaml
+# Usage:	USES=ocaml or USES=ocaml:args
 #
-# Feature:		ocaml
-# Usage:		USES=ocaml:dune
-#			USE_OCAML=yes
+# Valid ARGS:	build, camlp4, dune, findlib, findplist, ldconfig, tk, tkbuild, tkrun, wash
+#		If empty, defaults to build and run
+#
+# build		-	Add ocamlc to BUILD|EXTRACT|PATCH_DEPENDS
+#
+# camlp4	-	Use camlp4 to build
+#
+# dune		-	Use dune as a build system
+#
+# findlib	-	Set if port uses ocamlfind to install packages.
+# 			Package direcories will be automatically deleted
+#
+# findplist	-	Add contents of findlib target directories automatically
+#
+# ldconfig	-	Set if your port installs shared libraries into ocaml
+# 			site-lib dir. OCaml ld.conf file will be automatically
+# 			processed. When dune is used Dune may install stublibs in
+# 			site-lib package directory(ies) or in a single directory
+# 			below DUNE_LIBDIR.
+#
+# run		-	Add ocamlc to RUN_DEPENDS
+#
+# tk		-	Set if port needs ocaml-labltk which implies tkbuild and
+#			tkrun
+#
+# tkbuild	-	Add labltk to BUILD|EXTRACT|PATCH_DEPENDS
+#
+# tkrun		-	Add labltk to RUN_DEPENDS
+#
+# wash		- 	Set if your port wants to automatically
+#			purge shared Ocaml dirs on uninstall. It's
+#			useful when installing to non-standard PREFIX
 #
 # Variables that may be set by the port:
 #
-#  OCAML_PACKAGES	List of packages to build and install, defaults to PORTNAME
+# OCAML_PKGDIRS		-	Directories under site-lib to be processed
+#				if USES=ocaml:findlib specified.
+#				Default: ${PORTNAME}
 #
-#  USE_OCAML_LDCONFIG	Dune may install stublibs in site-lib package directory(ies)
-#  OCAML_LDLIBS		or in a single directory below DUNE_LIBDIR.
+# OCAML_LDLIBS		-	Directories under PREFIX to be automatically
+#				added/removed from ld.conf
+#				Default: ${OCAML_SITELIBDIR}/${PORTNAME}
 #
-# Appends to: BUILD_DEPENDS, MAKE_ENV
+# OCAML_PACKAGES	- 	List of packages to build and install, defaults to ${PORTNAME}
 #
 # MAINTAINER: freebsd@dev.thsi.be
 
 .if !defined(_INCLUDE_USES_OCAML_MK)
 _INCLUDE_USES_OCAML_MK=	yes
 
-.  if empty(ocaml_ARGS:Mdune)
-IGNORE=	Incorrect 'USES+= ocaml:${ocaml_ARGS}' ocaml requires a single 'dune' argument (for now)
+_OCAML_VALID_ARGS=	build camlp4 dune findlib findplist ldconfig tk tkbuild tkrun wash
+_OCAML_UNKNOWN_ARGS=
+.  for arg in ${ocaml_ARGS}
+.    if empty(_OCAML_VALID_ARGS:M${arg})
+_OCAML_UNKNOWN_ARGS+=	${arg}
+.    endif
+.  endfor
+.  if !empty(_OCAML_UNKNOWN_ARGS)
+IGNORE=	has unknown USES=ocaml arguments: ${_OCAML_UNKNOWN_ARGS}
 .  endif
-
-.  if !defined(OCAML_include)
-.error USES=dune only works with USE_OCAML=yes
+.  if ${ocaml_ARGS:Mfindplist} && ${ocaml_ARGS:Mfindlib}
+DEV_WARNING+=   "USES=ocaml:findlib is included in USES=ocaml:findplist, so it is not needed"
+.  endif
+.  if empty(ocaml_ARGS)
+ocaml_ARGS=	build,run
 .  endif
 
+.  if !empty(ocaml_ARGS)
+.undef _USE_OCAML_BUILD
+.undef _USE_OCAML_CAMLP4
+.undef _USE_OCAML_DUNE
+.undef _USE_OCAML_FINDLIB
+.undef _USE_OCAML_FINDPLIST
+.undef _USE_OCAML_LDCONFIG
+.undef _USE_OCAML_RUN
+.undef _USE_OCAML_TKBUILD
+.undef _USE_OCAML_TKRUN
+.undef _USE_OCAML_WASH
+_OCAML_ARGS=		${ocaml_ARGS:S/,/ /g}
+.    if ${_OCAML_ARGS:Mcamlp4}
+_USE_OCAML_CAMLP4=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Ncamlp4}
+.    endif
+.    if ${_OCAML_ARGS:Mdune}
+_USE_OCAML_DUNE=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Ndune}
+.    endif
+.    if ${_OCAML_ARGS:Mfindplist}
+_USE_OCAML_FINDPLIST=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Nfindplist}
+_OCAML_ARGS+=		findlib
+.    endif
+.    if ${_OCAML_ARGS:Mfindlib}
+_USE_OCAML_FINDLIB=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Nfindlib}
+.    endif
+.    if ${_OCAML_ARGS:Mldconfig}
+_USE_OCAML_LDCONFIG=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Nldconfig}
+.    endif
+.    if ${_OCAML_ARGS:Mtk}
+_OCAML_ARGS+=		tkbuild
+_OCAML_ARGS+=		tkrun
+.    endif
+.    if ${_OCAML_ARGS:Mtkbuild}
+.      if defined(NO_BUILD)
+IGNORE=		Makefile error: NO_BUILD and USES=ocaml:tkbuild cannot be set at the same time
+.      else
+_USE_OCAML_TKBUILD=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Ntkbuild}
+.      endif
+.    endif
+.    if ${_OCAML_ARGS:Mtkrun}
+_USE_OCAML_TKRUN=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Ntkrun}
+.    endif
+.    if ${_OCAML_ARGS:Mwash}
+_USE_OCAML_WASH=	yes
+_OCAML_ARGS:=	${_OCAML_ARGS:Nwash}
+.    endif
+.    if empty(_OCAML_ARGS)
+_OCAML_ARGS+=		build
+_OCAML_ARGS+=		run
+.    endif
+.    if ${_OCAML_ARGS:Mbuild}
+.      if defined(NO_BUILD)
+IGNORE=		Makefile error: NO_BUILD and USES=ocaml:build cannot be set at the same time
+.      else
+_USE_OCAML_BUILD=	yes
+.      endif
+.    endif
+.    if ${_OCAML_ARGS:Mrun}
+_USE_OCAML_RUN=	yes
+.    endif
+.  endif # !empty(ocaml_ARGS)
+
 #
-# Dune builder port
+# OCaml programs location
+#
+OCAMLC?=		${LOCALBASE}/bin/ocamlc
+OCAMLC_OPT?=		${LOCALBASE}/bin/ocamlc.opt
+OCAMLCP?=		${LOCALBASE}/bin/ocamlcp
+OCAMLFIND?=		${LOCALBASE}/bin/ocamlfind
+CAMLP4?=		${LOCALBASE}/bin/camlp4
+OCAMLTK?=		${LOCALBASE}/bin/labltk
+
 #
-DUNE_PORT?=		devel/ocaml-dune
-DUNE_DEPEND?=		ocaml-dune>=3.7.1_2:devel/ocaml-dune
+# OCaml library directory
+#
+OCAML_LIBDIR?=		lib/ocaml
+
+#
+# Where to install site libraries
+#
+OCAML_SITELIBDIR?=	${OCAML_LIBDIR}/site-lib
 
-BUILD_DEPENDS+=		${DUNE_DEPEND}
+#
+# OCaml compiler port dependency
+#
+OCAMLC_PORT?=		lang/ocaml
+OCAMLC_DEPEND?=		${OCAMLC}:${OCAMLC_PORT}
+
+#
+# OCaml package manager port dependency
+#
+OCAMLFIND_PORT?=	devel/ocaml-findlib
+OCAMLFIND_DEPEND?=	${OCAMLFIND}:${OCAMLFIND_PORT}
+
+#
+# OCaml camlp4 port dependency
+#
+CAMLP4_PORT?=		devel/ocaml-camlp4
+CAMLP4_DEPEND?=		${CAMLP4}:${CAMLP4_PORT}
+
+#
+# Dune builder port
+#
+.  if defined(_USE_OCAML_DUNE)
+BUILD_DEPENDS+=		ocaml-dune>=3.7.1_2:devel/ocaml-dune
 
 DUNE_ARGS=		--display=short --always-show-command-line \
 			--no-config -j ${MAKE_JOBS_NUMBER} --profile release \
@@ -50,8 +198,116 @@ DUNE_INSTALL_TARGETS?=
 DUNE_LIBDIR?=		${OCAML_SITELIBDIR}
 OCAML_PACKAGES?=		${PORTNAME}
 DUNE_ROOT?=		.
+# Left empty for default @install target
+ALL_TARGET?=
+.  endif
+
+#
+# OCaml TK bindings dependency
+#
+OCAMLTK_PORT?=		x11-toolkits/ocaml-labltk
+OCAMLTK_DEPENDS?=	${OCAMLTK}:${OCAMLTK_PORT}
+
+#
+# Common OCaml examples and documents location
+#
+OCAML_DOCSDIR=		${PREFIX}/share/doc/ocaml
+OCAML_EXAMPLESDIR=	${PREFIX}/share/examples/ocaml
+
+#
+# Location of OCaml ld.conf file
+#
+OCAML_LDCONF?=		${OCAML_LIBDIR}/ld.conf
+
+# ocaml-findlib-1.4.1_1 wants to edit our ld.conf file, which does not
+# work well with staging.
+.  if defined(_USE_OCAML_LDCONFIG)
+.    if !target(ocaml-ldconfig)
+OCAMLFIND_LDCONF?=	/dev/null
+.    endif
+.  endif
+
+OCAMLFIND_DESTDIR?=	${PREFIX}/${OCAML_SITELIBDIR}
+OCAMLFIND_LDCONF?=	${PREFIX}/${OCAML_LDCONF}
+
+.  if defined(_USE_OCAML_BUILD)
+EXTRACT_DEPENDS+=	${OCAMLC_DEPEND}
+PATCH_DEPENDS+=		${OCAMLC_DEPEND}
+BUILD_DEPENDS+=		${OCAMLC_DEPEND}
+.  endif
+.  if defined(_USE_OCAML_RUN)
+RUN_DEPENDS+=		${OCAMLC_DEPEND}
+.  endif
+PLIST_SUB+=	OCAML_SITELIBDIR="${OCAML_SITELIBDIR}"
 
-.  if USE_OCAML_LDCONFIG
+.  if defined(_USE_OCAML_FINDLIB)
+#
+# We'll additionally add ocamlfind to RUN_DEPENDS, since
+# if the port requires ocamlfind to install - it requires
+# some ocaml libraries and these libraries RUN_DEPENDS on
+# ocamlfind
+#
+BUILD_DEPENDS+=		${OCAMLFIND_DEPEND}
+RUN_DEPENDS+=		${OCAMLFIND_DEPEND}
+MAKE_ENV+=	OCAMLFIND_DESTDIR="${STAGEDIR}${OCAMLFIND_DESTDIR}" \
+		OCAMLFIND_LDCONF="${OCAMLFIND_LDCONF}"
+
+#
+# Directories under site-lib to process automatically
+#
+OCAML_PKGDIRS?=	${PORTNAME}
+_USES_install+=	250:ocaml-pre-install 735:ocaml-findlib
+.    if !target(ocaml-pre-install)
+ocaml-pre-install:
+	${MKDIR} ${STAGEDIR}${OCAMLFIND_DESTDIR}
+.    endif
+.    if !target(ocaml-findlib)
+ocaml-findlib:
+.      for DIR in ${OCAML_PKGDIRS}
+.        if defined(_USE_OCAML_FINDPLIST)
+	@${FIND} ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}/${DIR}/ -type f -print | ${SED} -e \
+		's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
+.        endif
+	@${ECHO_CMD} "@postunexec ${OCAMLFIND} remove ${DIR} 2>/dev/null" \
+		>> ${TMPPLIST}
+.      endfor
+.    endif
+.  endif
+
+.  if defined(_USE_OCAML_CAMLP4)
+BUILD_DEPENDS+=		${CAMLP4_DEPEND}
+.  endif
+
+.    if defined(_USE_OCAML_TKBUILD)
+EXTRACT_DEPENDS+=	${OCAMLTK_DEPENDS}
+PATCH_DEPENDS+=		${OCAMLTK_DEPENDS}
+BUILD_DEPENDS+=		${OCAMLTK_DEPENDS}
+.    endif
+.    if defined(_USE_OCAML_TKRUN)
+RUN_DEPENDS+=		${OCAMLTK_DEPENDS}
+.    endif
+
+.  if defined(_USE_OCAML_LDCONFIG)
+#
+# Directories under PREFIX for appending to ld.conf
+#
+OCAML_LDLIBS?=	${OCAML_SITELIBDIR}/${PORTNAME}
+_USES_install+=	740:ocaml-ldconfig
+.    if !target(ocaml-ldconfig)
+ocaml-ldconfig:
+.      for LIB in ${OCAML_LDLIBS}
+	@${ECHO_CMD} "@postexec ${ECHO_CMD} "%D/${LIB}" >> %D/${OCAML_LDCONF}" \
+		>> ${TMPPLIST}
+	@${ECHO_CMD} "@postunexec ${SED} -i \"\" -e '/${LIB:S#/#\/#g}/d' %D/${OCAML_LDCONF}"  >> ${TMPPLIST}
+.      endfor
+.    endif
+.  endif
+
+.  if defined(_USE_OCAML_WASH)
+PLIST_FILES+=	"@rmempty ${OCAML_LDCONF}"
+.  endif
+
+.  if defined(_USE_OCAML_LDCONFIG) && defined(_USE_OCAML_DUNE)
 .    if !empty(OCAML_LDLIBS)
 .      if ${OCAML_LDLIBS:[#]} > 1
 .        for _l in ${OCAML_LDLIBS}
@@ -68,13 +324,13 @@ DUNE_ENV+=	DUNE_FREEBSD_STUBLIBS_RELATIVE_TO_LIBDIR=${OCAML_PACKAGES:[1]}
 .    endif
 .  endif
 
-# left empty for default @install target
-ALL_TARGET?=	
+.  if defined(_USE_OCAML_DUNE)
 MAKE_ENV+=	${DUNE_ENV}
 
 DO_MAKE_BUILD?=	${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${DUNE_CMD} build ${DUNE_ARGS} ${DUNE_BUILD_ARGS}
+.  endif
 
-.  if !target(do-install) && !defined(NO_INSTALL)
+.  if !target(do-install) && !defined(NO_INSTALL) && defined(_USE_OCAML_DUNE)
 do-install:
 	@(cd ${INSTALL_WRKSRC} && ${SETENV} ${WRK_ENV} ${MAKE_ENV} ${FAKEROOT} ${DUNE_CMD} install ${DUNE_ARGS} ${DUNE_INSTALL_ARGS} ${DUNE_INSTALL_TARGETS})
 .  endif
diff --git a/Mk/bsd.ocaml.mk b/Mk/bsd.ocaml.mk
deleted file mode 100644
index 1dc29209e785..000000000000
--- a/Mk/bsd.ocaml.mk
+++ /dev/null
@@ -1,198 +0,0 @@
-# ex:ts=4
-#
-# $MBSDlabs: portmk/bsd.ocaml.mk,v 1.18 2006/08/06 18:47:23 stas Exp $
-#
-# bsd.ocaml.mk - Support for the Objective Caml language packages
-#
-# Author: Stanislav Sedov <ssedov@mbsd.msk.ru>
-#
-# Feel free to send any comments and suggestions to maintainer.
-#
-# Currently recognised variables are:
-#
-# USE_OCAML		-	Set if your port uses OCaml to build/install.
-# NO_OCAML_BUILDDEPENDS	-	Don't add ocamlc to BUILD|EXTRACT|PATCH_DEPENDS.
-# NO_OCAML_RUNDEPENDS	-	Don't add ocamlc to RUN_DEPENDS.
-# USE_OCAML_FINDLIB	-	Set if your port uses ocamlfind to install
-#				packages. Package direcories will be
-#				automatically deleted.
-# USE_OCAML_CAMLP4	-	Set if your port uses camlp4 to build.
-# USE_OCAML_TK		-	Set if you port needs ocaml-labltk.
-# NO_OCAMLTK_BUILDDEPENDS -	Don't add labltk to BUILD|EXTRACT|PATCH_DEPENDS.
-# NO_OCAMLTK_RUNDEPENDS	-	Don't add labltk to RUN_DEPENDS.
-# USE_OCAML_LDCONFIG	-	Set if your port installs shared libraries
-#				into ocaml site-lib dir. OCaml ld.conf file
-#				will be automatically processed.
-# USE_OCAMLFIND_PLIST	-	Add contents of findlib target directories
-#				automatically.
-# USE_OCAML_WASH	-	Set if your port wants to automatically
-#				purge shared Ocaml dirs on uninstall. It's
-#				useful when installing to non-standard PREFIX
-# OCAML_PKGDIRS		-	Directories under site-lib to be processed
-#				if USE_OCAML_FINDLIB specified.
-#				Default: ${PORTNAME}
-# OCAML_LDLIBS		-	Directories under PREFIX to be automatically
-#				added/removed from ld.conf
-#				Default: ${OCAML_SITELIBDIR}/${PORTNAME}
-
-.if !defined(OCAML_include)
-
-OCAML_MAINTAINER=	ports@FreeBSD.org
-OCAML_include=		bsd.ocaml.mk
-
-#
-# OCaml programs location
-#
-OCAMLC?=		${LOCALBASE}/bin/ocamlc
-OCAMLC_OPT?=		${LOCALBASE}/bin/ocamlc.opt
-OCAMLCP?=		${LOCALBASE}/bin/ocamlcp
-OCAMLFIND?=		${LOCALBASE}/bin/ocamlfind
-CAMLP4?=		${LOCALBASE}/bin/camlp4
-OCAMLTK?=		${LOCALBASE}/bin/labltk
-
-#
-# OCaml library directory
-#
-OCAML_LIBDIR?=		lib/ocaml
-
-#
-# Where to install site libraries
-#
-OCAML_SITELIBDIR?=	${OCAML_LIBDIR}/site-lib
-
-#
-# OCaml compiler port dependency
-#
-OCAMLC_PORT?=		lang/ocaml
-OCAMLC_DEPEND?=		${OCAMLC}:${OCAMLC_PORT}
-
-#
-# OCaml package manager port dependency
-#
-OCAMLFIND_PORT?=	devel/ocaml-findlib
-OCAMLFIND_DEPEND?=	${OCAMLFIND}:${OCAMLFIND_PORT}
-
-#
-# OCaml camlp4 port dependency
-#
-CAMLP4_PORT?=		devel/ocaml-camlp4
-CAMLP4_DEPEND?=		${CAMLP4}:${CAMLP4_PORT}
-
-#
-# OCaml TK bindings dependency
-#
-OCAMLTK_PORT?=		x11-toolkits/ocaml-labltk
-OCAMLTK_DEPENDS?=	${OCAMLTK}:${OCAMLTK_PORT}
-
-#
-# Common OCaml examples and documents location
-#
-OCAML_DOCSDIR=		${PREFIX}/share/doc/ocaml
-OCAML_EXAMPLESDIR=	${PREFIX}/share/examples/ocaml
-
-#
-# Location of OCaml ld.conf file
-#
-OCAML_LDCONF?=		${OCAML_LIBDIR}/ld.conf
-
-# ocaml-findlib-1.4.1_1 wants to edit our ld.conf file, which does not
-# work well with staging.
-.  if defined(USE_OCAML_LDCONFIG)
-.    if !target(ocaml-ldconfig)
-OCAMLFIND_LDCONF?=	/dev/null
-.    endif
-.  endif
-
-OCAMLFIND_DESTDIR?=	${PREFIX}/${OCAML_SITELIBDIR}
-OCAMLFIND_LDCONF?=	${PREFIX}/${OCAML_LDCONF}
-
-.  if defined(USE_OCAML)
-.    if !defined(NO_OCAML_BUILDDEPENDS)
-EXTRACT_DEPENDS+=	${OCAMLC_DEPEND}
-PATCH_DEPENDS+=		${OCAMLC_DEPEND}
-BUILD_DEPENDS+=		${OCAMLC_DEPEND}
-.    endif
-.    if !defined(NO_OCAML_RUNDEPENDS)
-RUN_DEPENDS+=		${OCAMLC_DEPEND}
-.    endif
-PLIST_SUB+=	OCAML_SITELIBDIR="${OCAML_SITELIBDIR}"
-.  endif
-
-.  if defined(USE_OCAML_FINDLIB)
-#
-# We'll additionally add ocamlfind to RUN_DEPENDS, since
-# if the port requires ocamlfind to install - it requires
-# some ocaml libraries and these libraries RUN_DEPENDS on
-# ocamlfind
-#
-BUILD_DEPENDS+=		${OCAMLFIND_DEPEND}
-RUN_DEPENDS+=		${OCAMLFIND_DEPEND}
-MAKE_ENV+=	OCAMLFIND_DESTDIR="${STAGEDIR}${OCAMLFIND_DESTDIR}" \
-		OCAMLFIND_LDCONF="${OCAMLFIND_LDCONF}"
-
-#
-# Directories under site-lib to process automatically
-#
-OCAML_PKGDIRS?=	${PORTNAME}
-_USES_install+=	735:ocaml-findlib
-.    if !target(ocaml-findlib)
-ocaml-findlib:
-.      for DIR in ${OCAML_PKGDIRS}
-.        if defined(USE_OCAMLFIND_PLIST)
-	@${FIND} ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}/${DIR}/ -type f -print | ${SED} -e \
-		's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
-.        endif
-	@${ECHO_CMD} "@postunexec ${OCAMLFIND} remove ${DIR} 2>/dev/null" \
-		>> ${TMPPLIST}
-.      endfor
-.    endif
-.  endif
-
-.  if defined(USE_OCAML_CAMLP4)
-BUILD_DEPENDS+=		${CAMLP4_DEPEND}
-.  endif
-
-.  if defined(USE_OCAML_TK)
-.    if !defined(NO_OCAMLTK_BUILDDEPENDS)
-EXTRACT_DEPENDS+=	${OCAMLTK_DEPENDS}
-PATCH_DEPENDS+=		${OCAMLTK_DEPENDS}
-BUILD_DEPENDS+=		${OCAMLTK_DEPENDS}
-.    endif
-.    if !defined(NO_OCAMLTK_RUNDEPENDS)
-RUN_DEPENDS+=		${OCAMLTK_DEPENDS}
-.    endif
-.  endif
-
-.  if defined(USE_OCAML_LDCONFIG)
-#
-# Directories under PREFIX for appending to ld.conf
-#
-OCAML_LDLIBS?=	${OCAML_SITELIBDIR}/${PORTNAME}
-_USES_install+=	740:ocaml-ldconfig
-.    if !target(ocaml-ldconfig)
-ocaml-ldconfig:
-.      for LIB in ${OCAML_LDLIBS}
-	@${ECHO_CMD} "@postexec ${ECHO_CMD} "%D/${LIB}" >> %D/${OCAML_LDCONF}" \
-		>> ${TMPPLIST}
-	@${ECHO_CMD} "@postunexec ${SED} -i \"\" -e '/${LIB:S#/#\/#g}/d' %D/${OCAML_LDCONF}"  >> ${TMPPLIST}
-.      endfor
-.    endif
-.  endif
-
-.  if defined(USE_OCAML_WASH)
-PLIST_FILES+=	"@rmempty ${OCAML_LDCONF}"
-.  endif
-
-.endif #!defined(OCAML_include)
-
-.if defined(_POSTMKINCLUDED)
-
-.  if defined(USE_OCAML_FINDLIB)
-
-pre-install: ${STAGEDIR}${OCAMLFIND_DESTDIR}
-${STAGEDIR}${OCAMLFIND_DESTDIR}:
-	@${MKDIR} ${.TARGET}
-
-.  endif
-
-.endif # _POSTMKINCLUDED
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index f5d56e8017a1..bbc0fe68ff19 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -360,9 +360,6 @@ FreeBSD_MAINTAINER=	portmgr@FreeBSD.org
 # USE_JAVA		- If set, this port relies on the Java language.
 #				  Implies inclusion of bsd.java.mk.  (Also see
 #				  that file for more information on USE_JAVA_*).
-# USE_OCAML		- If set, this port relies on the OCaml language.
-#				  Implies inclusion of bsd.ocaml.mk.  (Also see
-#				  that file for more information on USE_OCAML*).
 ##
 # USE_GECKO		- If set, this port uses the Gecko/Mozilla product.
 #				  See bsd.gecko.mk for more details.
@@ -1409,10 +1406,6 @@ PKGCOMPATDIR?=		${LOCALBASE}/lib/compat/pkg
 .include "${PORTSDIR}/Mk/bsd.java.mk"
 .    endif
 
-.    if defined(USE_OCAML)
-.include "${PORTSDIR}/Mk/bsd.ocaml.mk"
-.    endif
-
 .    if defined(USE_APACHE_BUILD)
 USES+=	apache:build,${USE_APACHE_BUILD:C/2([0-9])/2.\1/g}
 .    elif defined(USE_APACHE_RUN)
@@ -1936,10 +1929,6 @@ PKGPOSTDEINSTALL?=	${PKGDIR}/pkg-post-deinstall
 .include "${PORTSDIR}/Mk/bsd.java.mk"
 .    endif
 
-.    if defined(USE_OCAML)
-.include "${PORTSDIR}/Mk/bsd.ocaml.mk"
-.    endif
-
 .    if defined(USE_WX) || defined(USE_WX_NOT)
 .include "${PORTSDIR}/Mk/bsd.wx.mk"
 .    endif
diff --git a/Mk/bsd.sanity.mk b/Mk/bsd.sanity.mk
index 557b72a30509..f8bad3132290 100644
--- a/Mk/bsd.sanity.mk
+++ b/Mk/bsd.sanity.mk
@@ -210,7 +210,10 @@ SANITY_UNSUPPORTED=	USE_OPENAL USE_FAM USE_MAKESELF USE_ZIP USE_LHA USE_CMAKE \
 		XORG_CAT CARGO_USE_GITHUB CARGO_USE_GITLAB CARGO_GIT_SUBDIR \
 		USE_RUBY USE_RUBY_EXTCONF USE_RUBY_SETUP RUBY_NO_BUILD_DEPENDS \
 		RUBY_NO_RUN_DEPENDS USE_APACHE USE_APACHE_BUILD USE_APACHE_RUN \
-		USE_OPENLDAP WANT_OPENLDAP_VER
+		USE_OPENLDAP WANT_OPENLDAP_VER USE_OCAML USE_OCAML_CAMLP4 USE_OCAML_WASH \
+		USE_OCAML_TK NO_OCAMLTK_BUILDDEPENDS NO_OCAMLTK_RUNDEPENDS \
+		USE_OCAMLFIND_PLIST USE_OCAML_FINDLIB USE_OCAML_LDCONFIG \
+		NO_OCAML_BUILDDEPENDS NO_OCAML_RUNDEPENDS
 SANITY_DEPRECATED=	MLINKS \
 			USE_MYSQL WANT_MYSQL_VER \
 			PYDISTUTILS_INSTALLNOSINGLE
@@ -307,6 +310,17 @@ USE_RUBY_EXTCONF_ALT=	USES=ruby:extconf
 USE_RUBY_SETUP_ALT=	USES=ruby:setup
 RUBY_NO_BUILD_DEPENDS_ALT=	USES=ruby:run
 RUBY_NO_RUN_DEPENDS_ALT=	USES=ruby:build
+USE_OCAMLFIND_PLIST_ALT=	USES=ocaml:findplist
+USE_OCAML_ALT=		USES=ocaml
+USE_OCAML_CAMLP4_ALT=	USES=ocaml:camlp4
+USE_OCAML_FINDLIB_ALT=	USES=ocaml:findlib
+USE_OCAML_LDCONFIG_ALT=	USES=ocaml:ldconfig
+USE_OCAML_TK_ALT=	USES=ocaml:tk
+USE_OCAML_WASH_ALT=	USES=ocaml:wash
+NO_OCAMLTK_BUILDDEPENDS_ALT=	USES=ocaml:tkrun
+NO_OCAMLTK_RUNDEPENDS_ALT=	USES=ocaml:tkbuild
+NO_OCAML_BUILDDEPENDS_ALT=	USES=ocaml:run
+NO_OCAML_RUNDEPENDS_ALT=	USES=ocaml:build
 
 .for a in ${SANITY_DEPRECATED}
 .  if defined(${a})
diff --git a/archivers/ocaml-bz2/Makefile b/archivers/ocaml-bz2/Makefile
index 02bbbf0630e0..aeb79dfde263 100644
--- a/archivers/ocaml-bz2/Makefile
+++ b/archivers/ocaml-bz2/Makefile
@@ -10,12 +10,10 @@ WWW=		https://gitlab.com/irill/camlbz2
 LICENSE=	LGPL21 LGPL3
 LICENSE_COMB=	dual
 
-USES=		ocaml:dune
+USES=		ocaml:dune,ldconfig
 USE_GITLAB=	yes
 GL_ACCOUNT=	irill
 GL_PROJECT=	camlbz2
-USE_OCAML=	yes
-USE_OCAML_LDCONFIG=	yes
 
 DOCSDIR=	${OCAML_DOCSDIR}/${PORTNAME}
 EXAMPLESDIR=	${OCAML_EXAMPLESDIR}/${PORTNAME}
diff --git a/archivers/ocaml-zip/Makefile b/archivers/ocaml-zip/Makefile
index bbeb8a4736db..d57542721d11 100644
--- a/archivers/ocaml-zip/Makefile
+++ b/archivers/ocaml-zip/Makefile
@@ -12,17 +12,12 @@ WWW=		https://github.com/xavierleroy/camlzip
 LICENSE=	LGPL21
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		gmake
+USES=		gmake ocaml:findlib,ldconfig,wash
 USE_GITHUB=	yes
 GH_ACCOUNT=	xavierleroy
 GH_PROJECT=	camlzip
 GH_TAGNAME=	rel${PORTVERSION:S/.//}
 
-USE_OCAML=	yes
-USE_OCAML_FINDLIB=yes
-USE_OCAML_LDCONFIG=yes
-USE_OCAML_WASH=	yes
-
 post-install:
 	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ocaml/site-lib/zip/zip.cmxs \
 		${STAGEDIR}${PREFIX}/lib/ocaml/site-lib/zip/dllcamlzip.so
diff --git a/converters/ocaml-base64/Makefile b/converters/ocaml-base64/Makefile
index 34bf203264af..cb594d457f56 100644
--- a/converters/ocaml-base64/Makefile
+++ b/converters/ocaml-base64/Makefile
@@ -23,7 +23,6 @@ USES=		ocaml:dune
 USE_GITHUB=	yes
 GH_ACCOUNT=	mirage
 GH_PROJECT=	ocaml-base64
-USE_OCAML=	yes
 
 DOCSDIR=	${OCAML_DOCSDIR}/${PORTNAME}
 PORTDOCS=	CHANGES.md LICENSE.md README.md
@@ -43,7 +42,7 @@ post-install:
 		base64/base64.cmxs \
 		base64/rfc2045/base64_rfc2045.cmxs)
 	# this port never shipped stublibs
-	# cleanup from older port's wrong USE_OCAML_LDCONFIG
+	# cleanup from older port's wrong USES=ocaml:ldconfig
 	@${ECHO_CMD} @postexec ${SED} -i "''" -e \
 		"'/^${PREFIX:S#/#\/#g}\/${OCAML_SITELIBDIR:S#/#\/#g}\/base64$$/d'" \
 		%D/${OCAML_LDCONF}  >> ${TMPPLIST}
diff --git a/converters/ocaml-jsonm/Makefile b/converters/ocaml-jsonm/Makefile
index 90c7c549c7bb..5bf521d54a39 100644
--- a/converters/ocaml-jsonm/Makefile
+++ b/converters/ocaml-jsonm/Makefile
@@ -18,8 +18,7 @@ BUILD_DEPENDS=	ocamlbuild:devel/ocaml-ocamlbuild \
 		${SA_DIR}/uutf/META:devel/ocaml-uutf
 RUN_DEPENDS=	${SA_DIR}/uutf/META:devel/ocaml-uutf
 
-USES=		tar:tbz
-USE_OCAML=	yes
+USES=		ocaml tar:tbz
 SA_DIR=		${LOCALBASE}/${OCAML_SITELIBDIR}
 
 OPTIONS_DEFINE=	DOCS
diff --git a/databases/ocaml-dbm/Makefile b/databases/ocaml-dbm/Makefile
index ba9edf623e9b..09a0c2f39c45 100644
--- a/databases/ocaml-dbm/Makefile
+++ b/databases/ocaml-dbm/Makefile
@@ -12,10 +12,9 @@ WWW=		https://github.com/ocaml/dbm
 
 LICENSE=	LGPL20 # with a special exception to clause 6
 
+USES=		ocaml:ldconfig
 USE_GITHUB=	yes
-USE_OCAML=	yes
 GH_ACCOUNT=	ocaml
-USE_OCAML_LDCONFIG=	yes
 
 DOCSDIR=	${OCAML_DOCSDIR}/${PORTNAME}
 HAS_CONFIGURE=	yes
diff --git a/databases/ocaml-mysql/Makefile b/databases/ocaml-mysql/Makefile
index 8767d52e7b20..96fa62a8c41d 100644
--- a/databases/ocaml-mysql/Makefile
+++ b/databases/ocaml-mysql/Makefile
@@ -12,13 +12,8 @@ WWW=		http://ygrek.org.ua/p/ocaml-mysql/
 
 LICENSE=	LGPL21
 
-USES=		gmake mysql
+USES=		gmake ocaml:camlp4,findplist,ldconfig mysql
 IGNORE_WITH_MYSQL=	80 81
-USE_OCAML=		yes
-USE_OCAML_FINDLIB=	yes
-USE_OCAML_CAMLP4=	yes
-USE_OCAMLFIND_PLIST=	yes
-USE_OCAML_LDCONFIG=	yes
 
 GNU_CONFIGURE=		yes
 
diff --git a/databases/ocaml-sqlite3/Makefile b/databases/ocaml-sqlite3/Makefile
index 9ecf9a118310..194777bd2a25 100644
--- a/databases/ocaml-sqlite3/Makefile
+++ b/databases/ocaml-sqlite3/Makefile
@@ -14,14 +14,11 @@ LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
 
 BUILD_DEPENDS=	ocamlbuild:devel/ocaml-ocamlbuild
 
-USES=		ocaml:dune pkgconfig sqlite
+USES=		ocaml:dune,ldconfig pkgconfig sqlite
 USE_GITHUB=	yes
 GH_ACCOUNT=	mmottl
 GH_PROJECT=	${PORTNAME}-ocaml
 
-USE_OCAML=	yes
-USE_OCAML_LDCONFIG=	yes
-
 DOCSDIR=	${OCAML_DOCSDIR}/${PORTNAME}
 PORTDOCS=	CHANGES.md LICENSE.md README.md
 
*** 1866 LINES SKIPPED ***