svn commit: r337334 - in head: . math math/freemat math/freemat-mpi math/freemat/files
Tijl Coosemans
tijl at FreeBSD.org
Tue Dec 24 10:37:33 UTC 2013
Author: tijl
Date: Tue Dec 24 10:37:31 2013
New Revision: 337334
URL: http://svnweb.freebsd.org/changeset/ports/337334
Log:
- Update math/freemat to version 4.2 and clean up the port.
- Support JIT compilation using Clang/LLVM 3.3.
- Add desktop entry.
- Remove math/freemat-mpi. It has been marked IGNORE for almost 7 years
since the removal of MPI support in FreeMat 3.0.
Added:
head/math/freemat/files/patch-libs-libMatC-CJitFuncClang (contents, props changed)
Deleted:
head/math/freemat-mpi/
head/math/freemat/files/extra-patch-libs__libFN__CMakeLists.txt
head/math/freemat/files/extra-patch-libs__libFN__FNFun.cpp
head/math/freemat/files/extra-patch-libs__libFN__mathfunc4.cpp
head/math/freemat/files/patch-libs__libFreeMat__Array.cpp
head/math/freemat/files/patch-libs__libFreeMat__Math.cpp
head/math/freemat/files/patch-libs__libFreeMat__Operators.hpp
head/math/freemat/files/patch-libs__libGraphics__GLRenderEngine.cpp
head/math/freemat/files/patch-libs__thirdparty__pcre__pcreposix.c
head/math/freemat/pkg-plist
Modified:
head/MOVED
head/math/Makefile
head/math/freemat/Makefile
head/math/freemat/distinfo (contents, props changed)
head/math/freemat/files/patch-CMakeLists.txt (contents, props changed)
head/math/freemat/files/patch-libs__libFN__fdlibm.h (contents, props changed)
head/math/freemat/pkg-descr (contents, props changed)
Modified: head/MOVED
==============================================================================
--- head/MOVED Tue Dec 24 10:22:26 2013 (r337333)
+++ head/MOVED Tue Dec 24 10:37:31 2013 (r337334)
@@ -5339,3 +5339,4 @@ deskutils/libopensync-plugin-python-deve
deskutils/libopensync-plugin-synce-devel||2013-12-22|Removed, unmaintained, depends on deskutils/libopensync-plugin-python-devel
net-im/libmsn||2013-12-22|Has expired: Primary MSN Messenger service terminated 30 APR 2013
lang/clang||2013-12-22|Has expired: Migrate to lang/clang32 or newer
+math/freemat-mpi||2013-12-23|Obsolete since FreeMat 3.0
Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile Tue Dec 24 10:22:26 2013 (r337333)
+++ head/math/Makefile Tue Dec 24 10:37:31 2013 (r337334)
@@ -127,7 +127,6 @@
SUBDIR += fpc-numlib
SUBDIR += freefem
SUBDIR += freemat
- SUBDIR += freemat-mpi
SUBDIR += fricas
SUBDIR += fxt
SUBDIR += galculator
Modified: head/math/freemat/Makefile
==============================================================================
--- head/math/freemat/Makefile Tue Dec 24 10:22:26 2013 (r337333)
+++ head/math/freemat/Makefile Tue Dec 24 10:37:31 2013 (r337334)
@@ -1,121 +1,52 @@
# Created by: Thierry Thomas <thierry at pompo.net>
# $FreeBSD$
-PORTNAME= FreeMat
-PORTVERSION= 4.0
+PORTNAME= FreeMat
+PORTVERSION= 4.2
DISTVERSIONSUFFIX= -Source
-PORTREVISION= 6
-CATEGORIES= math science
-MASTER_SITES= SF
-MASTER_SITE_SUBDIR= freemat/FreeMat4
-.ifdef WITH_MPI
-PKGNAMESUFFIX= -mpi
-.endif
-
-MAINTAINER= ports at FreeBSD.org
-COMMENT= An environment for rapid engineering and scientific processing
-
-LIB_DEPENDS= lapack.4:${PORTSDIR}/math/lapack \
- pcre.3:${PORTSDIR}/devel/pcre
-
-LICENSE= GPLv2
-
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}.1${DISTVERSIONSUFFIX}
-
-.ifdef WITH_MPI
-IGNORE= no MPI support at the moment
-.endif
-
-USE_FORTRAN= yes
-FFLAGS+= -O2
-
-USE_GL= yes
-USES= cmake pkgconfig
-USE_QT4= gui network opengl moc_build rcc_build uic_build \
- qmake_build xml svg
-CPPFLAGS+= ${CXXFLAGS} -I${LOCALBASE}/include ${AMDINC}
-
-SLAVEDIRS= math/freemat-mpi
-
-DATADIR+= ${PREFIX}/share/${PORTNAME}-${PORTVERSION}
-
-.if !defined(WITHOUT_FFTW)
-LIB_DEPENDS+= fftw3:${PORTSDIR}/math/fftw3 \
- fftw3f:${PORTSDIR}/math/fftw3-float
-.endif
-
-.if !defined(WITHOUT_ARPACK)
-LIB_DEPENDS+= arpack.1:${PORTSDIR}/math/arpack
-.endif
-
-.if !defined(WITHOUT_AVCALL)
-BUILD_DEPENDS+= ${LOCALBASE}/lib/libavcall.a:${PORTSDIR}/devel/ffcall
-.endif
-
-.if !defined(WITHOUT_PORTAUDIO)
-LIB_DEPENDS+= portaudio.0:${PORTSDIR}/audio/portaudio
-.endif
-
-NO_STAGE= yes
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} < 800023
-# Add math functions that didn't exist until 8.x
-EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libs__libFN__CMakeLists.txt \
- ${FILESDIR}/extra-patch-libs__libFN__mathfunc4.cpp \
- ${FILESDIR}/extra-patch-libs__libFN__FNFun.cpp
-.endif
-
-.if exists(${LOCALBASE}/lib/libatlas.so) && !defined(WITH_BLAS)
-WITH_ATLAS= yes
-.endif
-.if defined(WITH_ATLAS)
-LIB_DEPENDS+= atlas.2:${PORTSDIR}/math/atlas
-BLAS= -lf77blas
-LAPACK= -lalapack -lcblas
-.else
-LIB_DEPENDS+= blas.2:${PORTSDIR}/math/blas \
- lapack.4:${PORTSDIR}/math/lapack
-BLAS= -lblas
-LAPACK= -llapack
-.endif
-
-.if !defined(WITHOUT_UMFPACK)
-LIB_DEPENDS+= amd.1:${PORTSDIR}/math/suitesparse
-AMDINC= -I${LOCALBASE}/include/suitesparse
-.endif
-
-pre-everything::
-.if !defined(WITH_ATLAS)
- @${ECHO_MSG} '**********************************************************'
- @${ECHO_MSG} '* You can define the following variables: *'
- @${ECHO_MSG} '* - WITH_ATLAS: to link with atlas *'
- @${ECHO_MSG} '* - WITHOUT_FFTW remove FFTW support *'
- @${ECHO_MSG} '* - WITHOUT_ARPACK remove Arpack support *'
- @${ECHO_MSG} '* - WITHOUT_AVCALL remove FFCALL support *'
- @${ECHO_MSG} '* - WITHOUT_UMFPACK remove UMFPACK support *'
- @${ECHO_MSG} '* - WITHOUT_PORTAUDIO remove Audio I/O support *'
- @${ECHO_MSG} '**********************************************************'
-.endif
-
-# Get rid of the generated .moc.cpp files included in the
-# upstream distro. They should be regenerated with the
-# currently-installed version of moc-qt4.
-post-extract:
- @cd ${WRKSRC} && ${FIND} . -name \*.moc.cpp -delete
-
-pre-configure:
- @${RM} ${WRKSRC}/CMakeCache.txt
-
-# Avoid conflict with QT3
-post-configure:
- @${FIND} ${WRKSRC} -name Makefile | ${XARGS} \
- ${REINPLACE_CMD} -e '/^QT_CFLAGS/s|-I${LOCALBASE}/include ||'
+CATEGORIES= math science
+MASTER_SITES= SF/freemat/FreeMat4
+
+MAINTAINER= ports at FreeBSD.org
+COMMENT= Numerical computing environment
+
+LICENSE= GPLv2
+
+BUILD_DEPENDS= ${LOCALBASE}/share/llvm33/cmake/LLVMConfig.cmake:${PORTSDIR}/devel/llvm33 \
+ ${LOCALBASE}/llvm33/lib/libclang.a:${PORTSDIR}/lang/clang33
+LIB_DEPENDS= libarpack.so:${PORTSDIR}/math/arpack \
+ libblas.so:${PORTSDIR}/math/blas \
+ libboost_math_c99.so:${PORTSDIR}/devel/boost-libs \
+ libffi.so:${PORTSDIR}/devel/libffi \
+ libfftw3.so:${PORTSDIR}/math/fftw3 \
+ libfftw3f.so:${PORTSDIR}/math/fftw3-float \
+ liblapack.so:${PORTSDIR}/math/lapack \
+ libpcre.so:${PORTSDIR}/devel/pcre \
+ libportaudio.so:${PORTSDIR}/audio/portaudio \
+ libumfpack.so:${PORTSDIR}/math/suitesparse
+
+USES= cmake:outsource dos2unix fortran pkgconfig
+USE_GL= yes
+USE_PYTHON_BUILD= yes
+USE_QT4= gui network opengl svg webkit xml \
+ moc_build qmake_build rcc_build uic_build
+CMAKE_ARGS= -DCMAKE_LIBRARY_PATH:STRING="${LOCALBASE}/llvm33/lib" \
+ -DCMAKE_PREFIX_PATH:STRING="${LOCALBASE}/share/llvm33/cmake" \
+ -DAMD_INCLUDE_DIR:STRING="${LOCALBASE}/include/suitesparse" \
+ -DUMFPACK_INCLUDE_DIR:STRING="${LOCALBASE}/include/suitesparse"
+DOS2UNIX_FILES= CMakeLists.txt libs/libFN/fdlibm.h
+
+CXXFLAGS+= -I${LOCALBASE}/llvm33/include
+LDFLAGS+= -L${LOCALBASE}/llvm33/lib
+
+DATADIR= ${PREFIX}/share/${PORTNAME}-${PORTVERSION}
+DESKTOP_ENTRIES="FreeMat" "" "${PREFIX}/share/pixmaps/freemat.png" \
+ "FreeMat" "Science;Math;NumericalAnalysis;" "true"
+PLIST_FILES= bin/FreeMat bin/blas.ini share/pixmaps/freemat.png
+PORTDATA= *
post-install:
- @${ECHO_MSG}
- @${ECHO_MSG} "===> Initializing..."
- ${PREFIX}/bin/FreeMat -i ${DATADIR}
- @${ECHO_MSG}
+ ${INSTALL_DATA} ${WRKSRC}/images/freemat_small_mod_64.png \
+ ${STAGEDIR}${PREFIX}/share/pixmaps/freemat.png
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
Modified: head/math/freemat/distinfo
==============================================================================
--- head/math/freemat/distinfo Tue Dec 24 10:22:26 2013 (r337333)
+++ head/math/freemat/distinfo Tue Dec 24 10:37:31 2013 (r337334)
@@ -1,2 +1,2 @@
-SHA256 (FreeMat-4.0-Source.tar.gz) = 6df1707c1f9e08b34e15eca8fa58bf3cf0ec8c121f64f58ca1d34a6eafd1066b
-SIZE (FreeMat-4.0-Source.tar.gz) = 38038903
+SHA256 (FreeMat-4.2-Source.tar.gz) = 5f56dc18458da72fb8143d47faeb7a66fa104f8ac9160558e032f6d2d68c9ffb
+SIZE (FreeMat-4.2-Source.tar.gz) = 106222549
Modified: head/math/freemat/files/patch-CMakeLists.txt
==============================================================================
--- head/math/freemat/files/patch-CMakeLists.txt Tue Dec 24 10:22:26 2013 (r337333)
+++ head/math/freemat/files/patch-CMakeLists.txt Tue Dec 24 10:37:31 2013 (r337334)
@@ -1,41 +1,20 @@
---- CMakeLists.txt.orig 2009-10-09 02:24:39.000000000 -0400
-+++ CMakeLists.txt 2010-09-23 15:07:03.000000000 -0400
-@@ -15,6 +15,20 @@
-
- PROJECT(FreeMat CXX C )
-
-+# skip the full RPATH for the build tree
-+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
-+
-+# when building, use the install RPATH already
-+# (so it doesn't need to relink when installing)
-+SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
-+
-+# the RPATH to be used when installing
-+SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
-+
-+# add the automatically determined parts of the RPATH
-+# which point to directories outside the build tree to the install RPATH
-+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-+#
- SET(CPACK_PACKAGE_VERSION_MAJOR "4")
- SET(CPACK_PACKAGE_VERSION_MINOR "0")
- SET(VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
-@@ -217,7 +231,7 @@
- INCLUDE_DIRECTORIES(${PORTAUDIO_SYS_INCLUDE_DIR})
- SET (PORTAUDIO_LIBRARY ${PORTAUDIO_SYS_LIBRARY})
- ENDIF (FORCE_BUNDLED_PORTAUDIO OR NOT SYSTEM_PORTAUDIO_AVAILABLE)
--ADD_DEFINITIONS( -DHAVE_PORTAUDIO19)
-+ADD_DEFINITIONS( -DHAVE_PORTAUDIO18)
- SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${PORTAUDIO_LIBRARY})
- IF (APPLE)
- FIND_LIBRARY(COREAUDIO_LIBRARY CoreAudio)
-@@ -245,7 +259,7 @@
- ######################################################################
- # LLVM Support
- ######################################################################
--OPTION(USE_LLVM "Build with LLVM support?" ON)
-+OPTION(USE_LLVM "Build with LLVM support?" OFF)
-
- IF( USE_LLVM )
- set(LLVM_FOUND FALSE)
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -204,7 +204,7 @@
+ FIND_PACKAGE(PORTAUDIO)
+
+ if (PORTAUDIO_FOUND)
+- ADD_DEFINITIONS(-DHAVE_PORTAUDIO19)
++ ADD_DEFINITIONS(-DHAVE_PORTAUDIO18)
+ SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${PORTAUDIO_LIBS})
+ INCLUDE_DIRECTORIES(${PORTAUDIO_INCLUDE})
+ endif()
+@@ -257,7 +257,7 @@
+ add_definitions(-DHAVE_LLVM)
+ include_directories(${LLVM_INCLUDE_DIRS})
+ link_directories(${LLVM_LIBRARY_DIRS})
+- llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit interpreter nativecodegen asmparser bitreader bitwriter codegen ipo linker selectiondag instrumentation)
++ llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit interpreter nativecodegen asmparser bitreader bitwriter codegen ipo linker selectiondag instrumentation irreader)
+ set(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${CLANG_LIBRARIES} ${REQ_LLVM_LIBRARIES})
+ ENDIF()
+
Added: head/math/freemat/files/patch-libs-libMatC-CJitFuncClang
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/freemat/files/patch-libs-libMatC-CJitFuncClang Tue Dec 24 10:37:31 2013 (r337334)
@@ -0,0 +1,72 @@
+--- libs/libMatC/CJitFuncClang.hpp.orig
++++ libs/libMatC/CJitFuncClang.hpp
+@@ -4,9 +4,9 @@
+ #include <stdint.h>
+ #include <string>
+
+-#include "llvm/Function.h"
++#include "llvm/IR/Function.h"
+ #include "llvm/ExecutionEngine/ExecutionEngine.h"
+-#include "llvm/LLVMContext.h"
++#include "llvm/IR/LLVMContext.h"
+ #include "clang/Frontend/CompilerInstance.h"
+ #include "CJitFunc.hpp"
+
+--- libs/libMatC/CJitFuncClang.cpp.orig
++++ libs/libMatC/CJitFuncClang.cpp
+@@ -14,13 +14,13 @@
+ #include "clang/Frontend/FrontendDiagnostic.h"
+ #include "clang/Frontend/TextDiagnosticPrinter.h"
+
+-#include "llvm/LLVMContext.h"
+-#include "llvm/Module.h"
++#include "llvm/IR/LLVMContext.h"
++#include "llvm/IR/Module.h"
+ #include "llvm/Config/config.h"
+ #include "llvm/ADT/OwningPtr.h"
+ #include "llvm/ADT/SmallString.h"
+ #include "llvm/Config/config.h"
+-#include "llvm/LLVMContext.h"
++#include "llvm/IR/LLVMContext.h"
+ #include "llvm/ExecutionEngine/ExecutionEngine.h"
+ #include "llvm/ExecutionEngine/GenericValue.h"
+ #include "llvm/Support/ManagedStatic.h"
+@@ -32,9 +32,9 @@
+ #include "llvm/Support/TargetSelect.h"
+ #include "llvm/Target/TargetOptions.h"
+
+-#include "llvm/Constants.h"
+-#include "llvm/DerivedTypes.h"
+-#include "llvm/Instructions.h"
++#include "llvm/IR/Constants.h"
++#include "llvm/IR/DerivedTypes.h"
++#include "llvm/IR/Instructions.h"
+ #include "llvm/ExecutionEngine/JIT.h"
+ //#include "llvm/ExecutionEngine/Interpreter.h"
+
+@@ -73,7 +73,7 @@
+ llvm::IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
+ DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagClient);
+ Driver TheDriver("", llvm::sys::getDefaultTargetTriple(),
+- "a.out", /*IsProduction=*/false,
++ "a.out",
+ Diags);
+ TheDriver.setTitle("FreeMat JIT");
+ llvm::SmallVector<const char *, 16> Args;
+@@ -107,14 +107,14 @@
+ CCArgs.size(),
+ Diags);
+ QString path = GetRootPath() + "/toolbox/jit";
+- CI->getHeaderSearchOpts().AddPath(path.toStdString().c_str(),frontend::Quoted,true,false,false);
++ CI->getHeaderSearchOpts().AddPath(path.toStdString().c_str(),frontend::Quoted,false,false);
+
+ // FIXME: This is copied from cc1_main.cpp; simplify and eliminate.
+ // Create a compiler instance to handle the actual work.
+ comp = new clang::CompilerInstance;
+ comp->setInvocation(CI.take());
+ // Create the compilers actual diagnostics engine.
+- comp->createDiagnostics(int(CCArgs.size()),const_cast<char**>(CCArgs.data()));
++ comp->createDiagnostics();
+ if (!comp->hasDiagnostics()) return false;
+ // Create and execute the frontend to generate an LLVM bitcode module.
+ // Pass the LLVM context to the code gen action. Otherwise, the action
Modified: head/math/freemat/files/patch-libs__libFN__fdlibm.h
==============================================================================
--- head/math/freemat/files/patch-libs__libFN__fdlibm.h Tue Dec 24 10:22:26 2013 (r337333)
+++ head/math/freemat/files/patch-libs__libFN__fdlibm.h Tue Dec 24 10:37:31 2013 (r337334)
@@ -1,17 +1,17 @@
--- ./libs/libFN/fdlibm.h.orig 2009-11-14 19:26:54.000000000 -0500
+++ ./libs/libFN/fdlibm.h 2009-11-14 19:27:53.000000000 -0500
@@ -11,13 +11,11 @@
- */
-
- /* REDHAT LOCAL: Include files. */
+ */
+
+ /* REDHAT LOCAL: Include files. */
+#include <stdarg.h>
- #include <math.h>
- //#include <sys/types.h>
- //#include <machine/ieeefp.h>
-
--typedef __int32 __int32_t;
--typedef unsigned __int32 __uint32_t;
--
- #define __IEEE_LITTLE_ENDIAN
-
- /* REDHAT LOCAL: Default to XOPEN_MODE. */
+ #include <math.h>
+ //#include <sys/types.h>
+ //#include <machine/ieeefp.h>
+
+-typedef __int32 __int32_t;
+-typedef unsigned __int32 __uint32_t;
+-
+ #define __IEEE_LITTLE_ENDIAN
+
+ /* REDHAT LOCAL: Default to XOPEN_MODE. */
Modified: head/math/freemat/pkg-descr
==============================================================================
--- head/math/freemat/pkg-descr Tue Dec 24 10:22:26 2013 (r337333)
+++ head/math/freemat/pkg-descr Tue Dec 24 10:37:31 2013 (r337334)
@@ -1,9 +1,6 @@
-FreeMat is an environment for rapid engineering and scientific processing.
-It is similar to commercial systems such as MATLAB from Mathworks and IDL
-from Research Systems, but is Open Source.
-
-FreeMat includes several novel features such as a codeless interface to
-external C/C++/FORTRAN code, parallel/distributed algorithm development
-(via MPI), and plotting and visualization capabilities.
+FreeMat is a free environment for rapid engineering and scientific
+prototyping and data processing. It is similar to commercial systems
+such as MATLAB from Mathworks, and IDL from Research Systems, but is
+Open Source.
WWW: http://freemat.sourceforge.net/
More information about the svn-ports-all
mailing list