[Midnightbsd-cvs] mports [17313] trunk/lang/ocaml/Makefile: update build

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Mon Sep 15 20:30:57 EDT 2014


Revision: 17313
          http://svnweb.midnightbsd.org/mports/?rev=17313
Author:   laffer1
Date:     2014-09-15 20:30:54 -0400 (Mon, 15 Sep 2014)
Log Message:
-----------
update build

Modified Paths:
--------------
    trunk/lang/ocaml/Makefile

Modified: trunk/lang/ocaml/Makefile
===================================================================
--- trunk/lang/ocaml/Makefile	2014-09-15 23:46:55 UTC (rev 17312)
+++ trunk/lang/ocaml/Makefile	2014-09-16 00:30:54 UTC (rev 17313)
@@ -2,7 +2,7 @@
 
 PORTNAME=	ocaml
 PORTVERSION=	4.01.0
-PORTREVISION=	0
+PORTREVISION=	1
 CATEGORIES=	lang
 MASTER_SITES=	http://caml.inria.fr/pub/distrib/${DISTNAME:R}/ \
 		${MASTER_SITE_GENTOO}
@@ -23,7 +23,6 @@
 USES=		gmake tar:bzip2
 REINPLACE_ARGS=	-i ""
 HAS_CONFIGURE=	yes
-USE_LDCONFIG=	yes
 ALL_TARGET=	world.opt
 STRIP=
 SSP_UNSAFE=	yes
@@ -31,68 +30,126 @@
 
 CONFIGURE_ARGS=	-prefix ${PREFIX} -host ${MACHINE_ARCH}-portbld-freebsd6.0
 
-OPTIONS=	X11	"Build with X11 support" on \
-		TK	"Build LablTk library (requires X11 support)" on \
-		THREADS	"Build with Posix threads support" on \
-		CMP_LIB	"Install compiler's libraries" off \
-		OPT_DEF	"Use system-optimized binaries by default" off
+OPTIONS_DEFINE= X11 TK THREADS DOCS EXAMPLES
+OPTIONS_DEFAULT=X11 TK THREADS
+TK_DESC=	LablTk library (requires X11 support)
+CMP_LIB_DESC=	Install compiler libraries
+PORTDOCS=	htmlman ${DOCSDISTNAME}-refman.ps.gz \
+		${DOCSDISTNAME}-refman.pdf
 
 MODOPT=		camlp4o camlp4r ocamlc ocamldep ocamldoc ocamllex ocamlopt
 PATTERN=	[[:space:]]*(do|then)?[[:space:]]*)(\$$\(CP\)|cp)([[:space:]]
+DOCSDISTNAME=	${DISTNAME:C/([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/\1.\2/}
 
+CONFLICTS=	metaocaml-[0-9]*
 
 # The dist makefile sets PREFIX with =, not ?=, so we need to override it.
 # Commandline variables have high precidence.
 FAKE_MAKEARGS=	PREFIX=${FAKE_DESTDIR}${TRUE_PREFIX}
 
-
 .include <bsd.mport.options.mk>
 
-.if !defined(WITHOUT_THREADS)
-DEPENDS_ARGS+=	WITH_THREADS=yes
-CONFIGURE_ARGS+=-with-pthread
+.if ${PORT_OPTIONS:MDOCS}
+DISTFILES+=	${DOCSDISTNAME}-refman-html.tar.gz \
+		${DOCSDISTNAME}-refman.ps.gz \
+		${DOCSDISTNAME}-refman.pdf
+EXTRACT_ONLY+=	${DOCSDISTNAME}-refman-html.tar.gz
+PLIST_SUB+=	DOC=""
+PORTDOCS=	htmlman ${DOCSDISTNAME}-refman.ps.gz ${DOCSDISTNAME}-refman.pdf
+.else
+PLIST_SUB+=	DOC="@comment "
+.endif
+
+CONFIGURE_ARGS+= -as "${AS} ${ASFLAGS}"
+
+.if ${PORT_OPTIONS:MTHREADS}
+PLIST_SUB+=	THREADS=""
 THR_CPP=	${PTHREAD_CFLAGS}
 THR_LD=		${PTHREAD_LIBS}
 .else
+PLIST_SUB+=	THREADS="@comment "
 THR_CPP=	#empty
 THR_LD=		#empty
 CONFIGURE_ARGS+=-no-pthread
 .endif
 
-.if !defined(WITHOUT_X11)
+.if ${PORT_OPTIONS:MX11}
 PLIST_SUB+=	X11=""
 USE_XORG=	x11
+CONFLICTS+=	ocaml-nox11-[0-9]*
 CONFIGURE_ARGS+=-x11include ${LOCALBASE}/include -x11lib ${LOCALBASE}/lib
 .else
 PLIST_SUB+=	X11="@comment "
-WITHOUT_TK=	yes
 SFX=		-nox11
-CONFLICTS+=	ocaml-[0-9]* ocaml-notk-[0-9]*
-CONFIGURE_ARGS+=-no-x11
+CONFLICTS+=	ocaml-[0-9]*
+CONFIGURE_ARGS+=-no-graph
 .endif
 
-.if defined(WITHOUT_TK)
+.if ${PORT_OPTIONS:MTK}
+. if ${PORT_OPTIONS:MEXAMPLES}
+PORTEXAMPLES=	examples_camltk examples_labltk
+.endif
+. if ! ${PORT_OPTIONS:MX11}
+IGNORE=requires X11 support to build TK bindings
+. endif
+USE_TK=		84+
+#USES+=		tk:84+
+PLIST_SUB+=	TK=""
+CONFIGURE_ARGS+=	-tkdefs \
+			"-I${TCL_INCLUDEDIR} -I${TK_INCLUDEDIR} ${THR_CPP}" \
+			-tklibs "-L${LOCALBASE}/lib -ltk${TK_VER:S|.||} \
+			-ltcl${TCL_VER:S|.||} ${THR_LD}"
+.else
 PLIST_SUB+=	TK="@comment "
-SFX=		-notk
-CONFLICTS+=	ocaml-[0-9]* ocaml-nox11-[0-9]*
 CONFIGURE_ARGS+=-no-tk
-.else
-USE_TK=		84+
-INVALID_TK_VER =	86
-EXTENSIONS+=	tcl
-PLIST_SUB+=	TK=""
-CONFLICTS+=	ocaml-nox11-[0-9]* ocaml-notk-[0-9]*
-CONFIGURE_ARGS+=-tkdefs \
-	"-I${LOCALBASE}/include/tcl8.4 -I${LOCALBASE}/include/tk8.4 ${THR_CPP}"\
-	-tklibs "-L${LOCALBASE}/lib ${THR_LD}"
 .endif
 
 .include <bsd.port.pre.mk>
+.include "${FILESDIR}/manfiles"
 
-.if ${ARCH} == sparc64
+OCAML_ARCH= ${ARCH:S/x86_64/amd64/:S/powerpc/power/:S/armv6/arm/}
+
+.if defined(NO_PROFILE) || ${OCAML_ARCH} == power || ${OPSYS} == DragonFly
+PLIST_SUB+=	PROF="@comment "
+.else
+PLIST_SUB+=	PROF=""
+.endif
+
+.if ${OCAML_ARCH} == sparc64
 BROKEN=	ocamlc.opt seg-faults on ${ARCH}, please try to fix
 .endif
 
+post-extract:
+.if ${PORT_OPTIONS:MDOCS}
+	@if ! (cd ${WRKDIR} && \
+	  ${TAR} xf ${_DISTDIR}${DOCSDISTNAME}-refman-html.tar.gz \
+	) \
+	then \
+	  exit 1; \
+	fi;
+.endif
+
+post-patch:
+	@${REINPLACE_CMD} \
+		-e '\|MKLIB=|s|ar rc|${AR} rc|' \
+		-e '\|RANLIB|s|ranlib|${RANLIB}|' \
+		-e '\|bytecclinkopts=|s|""|"${LDFLAGS}"|' \
+		-e "\|nativecclinkopts=|s|''|\"${LDFLAGS:C/-Wl,//}\"|" \
+		-e '\|mksharedlib=|s|$$bytecc|& $$bytecclinkopts|' \
+		-e 's|-lbfd -ldl|-lbfd $$dllib|' \
+		${WRKSRC}/configure
+# don't hardcode gcc for depend target
+# be aware of staging
+	@${REINPLACE_CMD} -E \
+		-e 's|gcc|$$(CC)|' \
+		-e '/^install/,/^$$/s@\$$\(((INSTALL_)?(BIN|LIB|STUBLIB|COMPLIB|MANO?|INSTALL|INSTALL_CUSTOM)DIR)\)@$$(STAGEDIR)$$(\1)@g' \
+		`find ${WRKSRC} -name 'Makefile*'`
+	@${REINPLACE_CMD} -E -e 's/^DIR=/DIR=$$(STAGEDIR)/' ${WRKSRC}/man/Makefile
+.if ${PORT_OPTIONS:MTK}
+	@${REINPLACE_CMD} -e 's|/usr/bin/wish|${WISH}|' \
+		${WRKSRC}/otherlibs/labltk/examples_labltk/hello.tcl
+.endif
+
 post-configure:
 # CFLAGS safeness
 	@${REINPLACE_CMD} -E \
@@ -99,7 +156,6 @@
 		-e 's|(BYTECCCOMPOPTS[ \t]*=.*)|\1 ${CFLAGS} ${THR_CPP}|' \
 		-e 's|(NATIVECCCOMPOPTS[ \t]*=.*)|\1 ${CFLAGS} ${THR_CPP}|' \
 		-e '/^PTHREAD_LINK/s,-pthread,${THR_LD},g' \
-		-e 's|gcc|${CC}|g'	\
 		${WRKSRC}/config/Makefile
 
 # INSTALL* safeness (which preserves the correct permissions despite
@@ -106,57 +162,37 @@
 # user's umask(1)
 	@${FIND} ${WRKDIR} -type f -name Makefile -print0 | \
 		${XARGS} -0 -n 5 -x ${REINPLACE_CMD} -E \
-		-e 's,\$$\(ARCH\),${ARCH:sparc64=sparc},g'	\
+		-e 's,\$$\(ARCH\),${OCAML_ARCH},g'	\
 		-e 's,^(${PATTERN}+.*INSTALLDIR),\1\$${BSD_INSTALL_DATA} \4,' \
 		-e 's,^(${PATTERN}+.*BINDIR),\1\$${BSD_INSTALL_PROGRAM} \4,' \
 		-e 's,^(${PATTERN}+.*LIBDIR),\1\$${BSD_INSTALL_DATA} \4,' \
 		-e 's,(${PATTERN}+.*(MANDIR|MANODIR|MANEXT)),\1\$${BSD_INSTALL_MAN} \4,'
 
+check test: install
+	@cd ${WRKSRC}/testsuite; ${RM} -f _log; for d in tests/* ; do \
+	${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} one DIR=$${d} \
+	2>&1 | tee -a _log || ${TRUE} ; done ; \
+	${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} report
+
 post-install:
-	@${TOUCH} ${PREFIX}/lib/ocaml/ocamldoc/custom/.keep
-.if !defined(WITHOUT_TK)
-	@${MKDIR} ${EXAMPLESDIR}
-	@(cd ${WRKSRC}/otherlibs/labltk && \
-		${COPYTREE_SHARE} examples_labltk ${EXAMPLESDIR} \
-		"! -name .cvsignore" && \
-		${COPYTREE_SHARE} examples_camltk ${EXAMPLESDIR} \
-		"! -name .cvsignore")
+	${RMDIR} ${STAGEDIR}${PREFIX}/lib/ocaml/ocamldoc/custom
+	@${CHMOD} 755 ${STAGEDIR}${PREFIX}/lib/ocaml/expunge
+.if ${PORT_OPTIONS:MTK}
+	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	(cd ${WRKSRC}/otherlibs/labltk && \
+		${COPYTREE_SHARE} examples_labltk ${STAGEDIR}${EXAMPLESDIR} \
+		"! -name .ignore" && \
+		${COPYTREE_SHARE} examples_camltk ${STAGEDIR}${EXAMPLESDIR} \
+		"! -name .ignore")
 .endif
+.if ${PORT_OPTIONS:MDOCS}
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	(cd ${WRKDIR} && ${COPYTREE_SHARE} htmlman ${STAGEDIR}${DOCSDIR})
+	${INSTALL_DATA} ${_DISTDIR}${DOCSDISTNAME}-refman.ps.gz ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${_DISTDIR}${DOCSDISTNAME}-refman.pdf ${STAGEDIR}${DOCSDIR}
+.endif
 
-.for PROG in camlp4o.opt camlp4r.opt ocamlc.opt ocamldep.opt ocamldoc.opt \
-		ocamllex.opt ocamlopt.opt ocamlrun ocamlyacc
-	@${STRIP_CMD} ${PREFIX}/bin/${PROG}
-.endfor
-
 # Fix permissions for ld.conf
-	@${CHMOD} 644 ${PREFIX}/lib/ocaml/ld.conf
+	@${CHMOD} 644 ${STAGEDIR}${PREFIX}/lib/ocaml/ld.conf
 
-# Do we want .opt version of tools to be the default ?
-.if defined(WITH_OPT_DEF)
-. for module in ${MODOPT}
-#	First, we save bytecode version
-	@${MV} ${PREFIX}/bin/${module} ${PREFIX}/bin/${module}.byte
-
-#	Next make .opt version be the default one (via link)
-	@${LN} ${PREFIX}/bin/${module}.opt ${PREFIX}/bin/${module}
-	@${ECHO_CMD} "bin/${module}.byte" >> ${TMPPLIST}
-	@${ECHO_CMD} "@exec ${LN} %D/${module}.opt %D/${module}" >> ${TMPPLIST}
-. endfor
-.endif
-
-# Add compiler's libs if required
-.if defined(WITH_CMP_LIB)
-	@${MKDIR}  ${PREFIX}/lib/ocaml/compiler-lib
-	@${INSTALL_DATA} ${WRKSRC}/utils/*.cm* ${PREFIX}/lib/ocaml/compiler-lib
-	@${INSTALL_DATA} ${WRKSRC}/utils/*.o ${PREFIX}/lib/ocaml/compiler-lib
-	@${INSTALL_DATA} ${WRKSRC}/parsing/*.cm* ${PREFIX}/lib/ocaml/compiler-lib
-	@${INSTALL_DATA} ${WRKSRC}/parsing/*.o ${PREFIX}/lib/ocaml/compiler-lib
-	@${INSTALL_DATA} ${WRKSRC}/typing/*.cm* ${PREFIX}/lib/ocaml/compiler-lib
-	@${INSTALL_DATA} ${WRKSRC}/typing/*.o ${PREFIX}/lib/ocaml/compiler-lib
-	@${FIND} ${PREFIX}/lib/ocaml/compiler-lib -type f | \
-		${SED} "s,^${PREFIX}/,," >> ${TMPPLIST}
-	@${ECHO_CMD} "@dirrm lib/ocaml/compiler-lib" >> ${TMPPLIST}
-.endif
-	@${ECHO_CMD} "@dirrm lib/ocaml" >> ${TMPPLIST}
-
 .include <bsd.port.post.mk>



More information about the Midnightbsd-cvs mailing list