Edit

IABSD.fr/ports/lang/ocaml/Makefile

Branch :

  • Show log

    Commit

  • Author : dv
    Date : 2024-04-23 17:50:55
    Hash : 7b13e7a2
    Message : Unbreak ocaml on i386. Extra linker args are no longer needed. OK sthen@

  • lang/ocaml/Makefile
  • COMMENT =	   ML language with complete class-based objective system
    
    # XXX Don't even think of updating ocaml alone.
    # Do check that the ports that depend on it still work, or repair them.
    VERSION=	4.14.2
    
    # if the ocaml compiler gains support for BTI, as well as
    # removing USE_NOBTCFI here (or changing to an arch-dependent
    # USE_NOBTCFI-xxx), sync in ocaml.port.mk and bump REVISION
    # for ports using MODULES=lang/ocaml
    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
    #
    # and check if packaging worked.
    
    PKGNAME =	ocaml-${VERSION:C/\+//}
    
    # OCaml has no binary compatibility between releases.
    PKGSPEC =	ocaml-=${VERSION:C/\+//}
    
    CATEGORIES=	lang
    BASENAME =	${DISTNAME:R}
    SITES=		https://caml.inria.fr/pub/distrib/${BASENAME}/
    DOCFILES=	${BASENAME}-refman-html.tar.gz
    DISTFILES=	${DISTNAME}.tar.gz ${DOCFILES}
    DISTNAME =	ocaml-${VERSION}
    
    HOMEPAGE=	https://ocaml.org/
    MAINTAINER=	Anil Madhavapeddy <avsm@openbsd.org>
    
    # QPL/LGPL
    PERMIT_PACKAGE=	Yes
    
    .include <bsd.port.arch.mk>
    
    # XXX: cannot run autoconf due to use of gnu m4 feature
    # that isn't in base m4
    CONFIGURE_STYLE =	gnu
    CONFIGURE_ENV+=		CFLAGS="${CFLAGS}" \
    			CPPFLAGS="${CFLAGS} ${CPPFLAGS}" \
    			LDFLAGS="${LDFLAGS}"
    .if ${PROPERTIES:Mclang}
    CONFIGURE_ENV+=		OBJDUMP=/usr/bin/llvm-objdump
    .endif
    CONFIGURE_ARGS +=	--disable-force-safe-string \
    			--enable-ocamltest
    
    CFLAGS +=	-I${LOCALBASE}/include
    LDFLAGS +=	-L${LOCALBASE}/lib
    
    .if ${MACHINE_ARCH} == "i386"
    # configure: error: fma does not work, enable emulation with --enable-imprecise-c99-float-ops
    CONFIGURE_ARGS +=	--enable-imprecise-c99-float-ops
    .endif
    
    USE_GMAKE=	Yes
    
    WANTLIB =		c m pthread
    
    .if ${PROPERTIES:Mocaml_native}
    ALL_TARGET=	world.opt
    PKG_ARGS +=	-Dnative=1
    
    .if ${PROPERTIES:Mocaml_native_dynlink}
    PKG_ARGS +=	-Ddynlink=1
    .else
    PKG_ARGS +=	-Ddynlink=0
    .endif
    
    .else
    ALL_TARGET=	world
    PKG_ARGS +=	-Dnative=0
    NO_TEST   =	yes
    .endif
    
    TEST_TARGET =	tests
    
    DPB_PROPERTIES +=	parallel
    
    post-install:
    	@${INSTALL_DATA_DIR} ${PREFIX}/share/doc/ocaml/html/libref
    	@${INSTALL_DATA} ${WRKDIR}/htmlman/*.{html,gif,css} \
    		${PREFIX}/share/doc/ocaml/html
    	@${INSTALL_DATA} ${WRKDIR}/htmlman/libref/* \
    		${PREFIX}/share/doc/ocaml/html/libref
    	@${INSTALL_DATA} \
    		${WRKSRC}/{LICENSE,Changes} \
    		${PREFIX}/share/doc/ocaml
    
    # One test in the suite (testsocket.ml) requires an active
    # connection to internet
    TEST_IS_INTERACTIVE =		Yes
    
    
    .include <bsd.port.mk>