Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Dec 2012 19:38:12 +0000 (UTC)
From:      Brendan Fabeny <bf@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r309324 - in head/math: . libmissing
Message-ID:  <201212201938.qBKJcCLu009068@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bf
Date: Thu Dec 20 19:38:12 2012
New Revision: 309324
URL: http://svnweb.freebsd.org/changeset/ports/309324

Log:
  Add libmissing , standard math functions missing from the FreeBSD libm.

Added:
  head/math/libmissing/
  head/math/libmissing/Makefile   (contents, props changed)
  head/math/libmissing/distinfo   (contents, props changed)
  head/math/libmissing/pkg-descr   (contents, props changed)
Modified:
  head/math/Makefile

Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile	Thu Dec 20 19:31:18 2012	(r309323)
+++ head/math/Makefile	Thu Dec 20 19:38:12 2012	(r309324)
@@ -215,6 +215,7 @@
     SUBDIR += libjbigi
     SUBDIR += liblbfgs
     SUBDIR += libmath++
+    SUBDIR += libmissing
     SUBDIR += libneural
     SUBDIR += libocas
     SUBDIR += liborigin

Added: head/math/libmissing/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/libmissing/Makefile	Thu Dec 20 19:38:12 2012	(r309324)
@@ -0,0 +1,85 @@
+# $FreeBSD$
+
+PORTNAME=	libmissing
+DISTVERSION=	20121220
+CATEGORIES=	math
+MASTER_SITES=	LOCAL/bf
+
+MAINTAINER=	bf@FreeBSD.org
+COMMENT=	Standard math functions missing from the FreeBSD libm
+
+LICENSE=	BSD
+
+LIB_DEPENDS=	mpc:${PORTSDIR}/math/mpc
+
+USE_LDCONFIG=	yes
+USE_XZ=		yes
+
+MAKE_ENV=	LDADD="-lmpc" LIB=missing SHLIB_MAJOR="${SHLIB_MAJOR}" \
+		SRCCONF="${NONEXISTENT}" SRCS="${SRCS}"
+
+OPTIONS_DEFINE=	PROFILE
+
+PLIST_FILES=	include/missing_complex.h \
+		include/missing_math.h \
+		lib/libmissing.a lib/libmissing.so \
+		lib/libmissing.so.${SHLIB_MAJOR}
+
+SHLIB_MAJOR=	1
+SRCS=		libmissing.c
+
+CFLAGS+=	-fno-builtin -fno-math-errno -I. -I${LOCALBASE}/include
+LDFLAGS+=	-L${LOCALBASE}/lib
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MPROFILE} || defined(WITH_PROFILE)
+.if defined(NOPROFILE) || defined(NO_PROFILE) || defined(WITHOUT_PROFILE)
+IGNORE =	you have defined WITH_PROFILE, but have also defined\
+WITHOUT_PROFILE, NOPROFILE, or NO_PROFILE
+.elif !exists(/usr/lib/libc_p.a)
+IGNORE  =	you have chosen WITH_PROFILE, but have not installed the\
+base system profiling libraries
+.endif
+PLIST_FILES+=	lib/libmissing_p.a
+.else
+MAKE_ENV+=	NO_PROFILE=yes
+.endif
+
+post-patch:
+	@${PRINTF} "LIBDIR=\t${PREFIX}/lib\n.include <bsd.lib.mk>\n" > \
+	${WRKSRC}/Makefile
+.for t in d q s
+	@cd ${WRKSRC}/c/common; ${CP} initseed.c maxtest.c ${WRKSRC}/c/${t}p/
+.endfor
+	@${REINPLACE_CMD} -E \
+	'/(XCFLAGS|XDEFINES|XINCLUDES|XLDFLAGS|XLIBS|XMFLAGS|XOPT)[[:blank:]]+=/d' \
+		${WRKSRC}/c/Makefile
+	@${REINPLACE_CMD} -e \
+	'/#include <math.h>/{x;s|^.*$$|#include "missing_math.h"|;H;x;}' \
+		${WRKSRC}/c/common/elefunt.h
+	@${REINPLACE_CMD} -e '\|COMMONOBJS[[:blank:]]*=|s|../common/||g' \
+		${WRKSRC}/c/dp/Makefile \
+		${WRKSRC}/c/qp/Makefile \
+		${WRKSRC}/c/sp/Makefile
+
+check regression-test test: build
+	@cd ${WRKSRC}/c; ${SETENV} ${MAKE_ENV} XCFLAGS="${CFLAGS} -frounding-math" \
+	XINCLUDES="-I${WRKSRC}" XLDFLAGS="${LDFLAGS}" XLIBS="-L${WRKSRC} -lmissing" \
+	LD_LIBRARY_PATH="/lib:/usr/lib:${LOCALBASE}/lib:${WRKSRC}" \
+	${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} all3
+.for t in d q s
+	@${PRINTF} "\n\n\n\t\t%s\n\n\n" "REPORT OF ${t:U}. PRECISION TEST RESULTS:"
+	@${CAT} ${WRKSRC}/c/${t}p/tall${t}p.lst-xxx
+.endfor
+
+post-install:
+	@cd ${WRKSRC}; ${INSTALL_DATA} missing_complex.h missing_math.h \
+	${PREFIX}/include
+.if !${PORT_OPTIONS:MEXAMPLES}
+	@${MKDIR} ${EXAMPLESDIR}
+	@cd ${WRKSRC}; ${INSTALL_DATA} ${PORTEXAMPLES} ${EXAMPLESDIR}
+
+PORTEXAMPLES=	${SRCS}
+.endif
+.include <bsd.port.mk>

Added: head/math/libmissing/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/libmissing/distinfo	Thu Dec 20 19:38:12 2012	(r309324)
@@ -0,0 +1,2 @@
+SHA256 (libmissing-20121220.tar.xz) = 226325e8cb7f28873c06da081978762079c07a90d53524aabb574d8731a6fb47
+SIZE (libmissing-20121220.tar.xz) = 129684

Added: head/math/libmissing/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/libmissing/pkg-descr	Thu Dec 20 19:38:12 2012	(r309324)
@@ -0,0 +1,7 @@
+This is a collection of stopgap replacements for standard math
+functions missing from libm in various supported versions of
+FreeBSD. The functions are slower than the existing libm
+functions, but are more accurate than many naive replacements.
+Exceptions are largely ignored.  N. Beebe's extended C version
+of the ELEFUNT package is used to provide regression tests for
+some of the real-valued functions.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212201938.qBKJcCLu009068>