diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sci-mathematics/freemat | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sci-mathematics/freemat')
-rw-r--r-- | sci-mathematics/freemat/Manifest | 1 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.0-gcc45.patch | 208 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.0-no_implicit_GLU.patch | 14 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.1-fixes.patch | 21 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.1-have_fftw.patch | 78 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.1-local_libffi.patch | 13 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.1-portaudio.patch | 10 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.1-python3.patch | 24 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.1-use_llvm.patch | 29 | ||||
-rw-r--r-- | sci-mathematics/freemat/files/freemat-4.2-use_llvm.patch | 45 | ||||
-rw-r--r-- | sci-mathematics/freemat/freemat-4.2.ebuild | 84 | ||||
-rw-r--r-- | sci-mathematics/freemat/metadata.xml | 20 |
12 files changed, 547 insertions, 0 deletions
diff --git a/sci-mathematics/freemat/Manifest b/sci-mathematics/freemat/Manifest new file mode 100644 index 000000000000..c794a4aef3a1 --- /dev/null +++ b/sci-mathematics/freemat/Manifest @@ -0,0 +1 @@ +DIST FreeMat-4.2-Source.tar.gz 106222549 SHA256 5f56dc18458da72fb8143d47faeb7a66fa104f8ac9160558e032f6d2d68c9ffb SHA512 85f56ab910358bac63bb50d9ef8fac51a486c32ffc246b47aea02fc6a629c36f0cd8d55feb755c4697530a87cf08fa8cc7b69ebde0f09535561014ea280b902a WHIRLPOOL 94b72375f451afd3da6bc756b9fa3e9a782edf8827a1b90f3d30723235df99c093ea7c4455b7d5cca1633f1d8d95302b237e0b389647ed242504626dd3f2c304 diff --git a/sci-mathematics/freemat/files/freemat-4.0-gcc45.patch b/sci-mathematics/freemat/files/freemat-4.0-gcc45.patch new file mode 100644 index 000000000000..7492e16b783e --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.0-gcc45.patch @@ -0,0 +1,208 @@ +Fix building with gcc-4.5 + +http://bugs.gentoo.org/show_bug.cgi?id=318045 + +--- libs/libFreeMat/Array.cpp ++++ libs/libFreeMat/Array.cpp +@@ -465,7 +465,7 @@ + + void Array::set(const QString& field, ArrayVector& data) { + if (isEmpty() && m_type.Class != Struct) +- *this = Array::Array(Struct); ++ *this = Array(Struct); + if (m_type.Class != Struct) throw Exception("Unsupported type for A.field=B"); + StructArray &rp(structPtr()); + if (isEmpty()) +--- libs/libFreeMat/Math.cpp ++++ libs/libFreeMat/Math.cpp +@@ -1590,9 +1590,9 @@ + + Array Not(const Array& A) { + if (A.isScalar()) +- return Array::Array(!A.toClass(Bool).constRealScalar<bool>()); ++ return Array(!A.toClass(Bool).constRealScalar<bool>()); + const Array &Abool(A.toClass(Bool)); +- return Array::Array(Apply(Abool.constReal<bool>(),notfunc)); ++ return Array(Apply(Abool.constReal<bool>(),notfunc)); + } + + Array Plus(const Array& A) { +--- libs/libFreeMat/Operators.hpp ++++ libs/libFreeMat/Operators.hpp +@@ -142,11 +142,11 @@ + if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray(); + if (Acast.isScalar() && Bcast.isScalar()) { + if (Acast.allReal() && Bcast.allReal()) { +- F = Array::Array(Op::func(Acast.constRealScalar<T>(), ++ F = Array(Op::func(Acast.constRealScalar<T>(), + Bcast.constRealScalar<T>())); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(T(0),T(0)); ++ F = Array(T(0),T(0)); + Op::func(Acast.constRealScalar<T>(), + Acast.constImagScalar<T>(), + Bcast.constRealScalar<T>(), +@@ -155,7 +155,7 @@ + } + } else if (Acast.isScalar()) { + if (Acast.allReal() && Bcast.allReal()) { +- F = Array::Array(Tclass,Bcast.dimensions()); ++ F = Array(Tclass,Bcast.dimensions()); + T* ret = F.real<T>().data(); + const T& Ap = Acast.constRealScalar<T>(); + const T* Bp = Bcast.constReal<T>().constData(); +@@ -163,7 +163,7 @@ + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Tclass,Bcast.dimensions()); ++ F = Array(Tclass,Bcast.dimensions()); + T* Cr = F.real<T>().data(); + T* Ci = F.imag<T>().data(); + const T& Ar = Acast.constRealScalar<T>(); +@@ -175,7 +175,7 @@ + } + } else if (Bcast.isScalar()) { + if (Bcast.allReal() && Acast.allReal()) { +- F = Array::Array(Tclass,Acast.dimensions()); ++ F = Array(Tclass,Acast.dimensions()); + T* ret = F.real<T>().data(); + const T* Ap = Acast.constReal<T>().constData(); + const T& Bp = Bcast.constRealScalar<T>(); +@@ -183,7 +183,7 @@ + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Tclass,Acast.dimensions()); ++ F = Array(Tclass,Acast.dimensions()); + T* Cr = F.real<T>().data(); + T* Ci = F.imag<T>().data(); + const T* Ar = Acast.constReal<T>().constData(); +@@ -197,7 +197,7 @@ + if (Acast.dimensions() != Bcast.dimensions()) + throw Exception("size mismatch in arguments to binary operator"); + if (Bcast.allReal() && Acast.allReal()) { +- F = Array::Array(Tclass,Acast.dimensions()); ++ F = Array(Tclass,Acast.dimensions()); + T* ret = F.real<T>().data(); + const T* Ap = Acast.constReal<T>().constData(); + const T* Bp = Bcast.constReal<T>().constData(); +@@ -205,7 +205,7 @@ + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp[i]); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Tclass,Acast.dimensions()); ++ F = Array(Tclass,Acast.dimensions()); + T* Cr = F.real<T>().data(); + T* Ci = F.imag<T>().data(); + const T* Ar = Acast.constReal<T>().constData(); +@@ -328,17 +328,17 @@ + if (!Acast.isScalar()) Acast = Acast.asDenseArray(); + if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray(); + if (Acast.isScalar() && Bcast.isScalar()) { +- F = Array::Array(Op::func(Acast.constRealScalar<T>(), ++ F = Array(Op::func(Acast.constRealScalar<T>(), + Bcast.constRealScalar<T>())); + } else if (Acast.isScalar()) { +- F = Array::Array(Bool,Bcast.dimensions()); ++ F = Array(Bool,Bcast.dimensions()); + bool* ret = F.real<bool>().data(); + const T& Ap = Acast.constRealScalar<T>(); + const T* Bp = Bcast.constReal<T>().constData(); + uint64 q = uint64(Bcast.length()); + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]); + } else if (Bcast.isScalar()) { +- F = Array::Array(Bool,Acast.dimensions()); ++ F = Array(Bool,Acast.dimensions()); + bool* ret = F.real<bool>().data(); + const T* Ap = Acast.constReal<T>().constData(); + const T& Bp = Bcast.constRealScalar<T>(); +@@ -347,7 +347,7 @@ + } else { + if (Acast.dimensions() != Bcast.dimensions()) + throw Exception("size mismatch in arguments to binary operator"); +- F = Array::Array(Bool,Acast.dimensions()); ++ F = Array(Bool,Acast.dimensions()); + bool* ret = F.real<bool>().data(); + const T* Ap = Acast.constReal<T>().constData(); + const T* Bp = Bcast.constReal<T>().constData(); +@@ -395,18 +395,18 @@ + if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray(); + if (Acast.isScalar() && Bcast.isScalar()) { + if (Acast.allReal() && Bcast.allReal()) { +- F = Array::Array(Op::func(Acast.constRealScalar<T>(), ++ F = Array(Op::func(Acast.constRealScalar<T>(), + Bcast.constRealScalar<T>())); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Op::func(Acast.constRealScalar<T>(), ++ F = Array(Op::func(Acast.constRealScalar<T>(), + Acast.constImagScalar<T>(), + Bcast.constRealScalar<T>(), + Bcast.constImagScalar<T>())); + } + } else if (Acast.isScalar()) { + if (Acast.allReal() && Bcast.allReal()) { +- F = Array::Array(Bool,Bcast.dimensions()); ++ F = Array(Bool,Bcast.dimensions()); + bool* ret = F.real<bool>().data(); + const T& Ap = Acast.constRealScalar<T>(); + const T* Bp = Bcast.constReal<T>().constData(); +@@ -414,7 +414,7 @@ + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Bool,Bcast.dimensions()); ++ F = Array(Bool,Bcast.dimensions()); + bool* ret = F.real<bool>().data(); + const T& Ar = Acast.constRealScalar<T>(); + const T& Ai = Acast.constImagScalar<T>(); +@@ -425,7 +425,7 @@ + } + } else if (Bcast.isScalar()) { + if (Bcast.allReal() && Acast.allReal()) { +- F = Array::Array(Bool,Acast.dimensions()); ++ F = Array(Bool,Acast.dimensions()); + bool* ret = F.real<bool>().data(); + const T* Ap = Acast.constReal<T>().constData(); + const T& Bp = Bcast.constRealScalar<T>(); +@@ -433,7 +433,7 @@ + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Bool,Acast.dimensions()); ++ F = Array(Bool,Acast.dimensions()); + bool* ret = F.real<bool>().data(); + const T* Ar = Acast.constReal<T>().constData(); + const T* Ai = Acast.constImag<T>().constData(); +@@ -446,7 +446,7 @@ + if (Acast.dimensions() != Bcast.dimensions()) + throw Exception("size mismatch in arguments to binary operator"); + if (Bcast.allReal() && Acast.allReal()) { +- F = Array::Array(Bool,Acast.dimensions()); ++ F = Array(Bool,Acast.dimensions()); + bool* ret = F.real<bool>().data(); + const T* Ap = Acast.constReal<T>().constData(); + const T* Bp = Bcast.constReal<T>().constData(); +@@ -454,7 +454,7 @@ + for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp[i]); + } else { + Acast.forceComplex(); Bcast.forceComplex(); +- F = Array::Array(Bool,Acast.dimensions()); ++ F = Array(Bool,Acast.dimensions()); + bool* ret = F.real<bool>().data(); + const T* Ar = Acast.constReal<T>().constData(); + const T* Ai = Acast.constImag<T>().constData(); +@@ -533,9 +533,9 @@ + if (!Acast.isScalar()) Acast = Acast.asDenseArray(); + if (Acast.isScalar()) { + if (Acast.allReal()) { +- F = Array::Array(Op::func(Acast.constRealScalar<T>())); ++ F = Array(Op::func(Acast.constRealScalar<T>())); + } else { +- F = Array::Array(T(0),T(0)); ++ F = Array(T(0),T(0)); + Op::func(Acast.constRealScalar<T>(), + Acast.constImagScalar<T>(), + F.realScalar<T>(),F.imagScalar<T>()); diff --git a/sci-mathematics/freemat/files/freemat-4.0-no_implicit_GLU.patch b/sci-mathematics/freemat/files/freemat-4.0-no_implicit_GLU.patch new file mode 100644 index 000000000000..dd3798bb8f6a --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.0-no_implicit_GLU.patch @@ -0,0 +1,14 @@ +error: 'gluProject' was not declared in this scope + +http://bugs.gentoo.org/402361 + +--- libs/libGraphics/GLRenderEngine.cpp ++++ libs/libGraphics/GLRenderEngine.cpp +@@ -20,6 +20,7 @@ + #include <qimage.h> + #include <qpainter.h> + #include <QtOpenGL> ++#include <GL/glu.h> + #include <math.h> + #include "IEEEFP.hpp" + diff --git a/sci-mathematics/freemat/files/freemat-4.1-fixes.patch b/sci-mathematics/freemat/files/freemat-4.1-fixes.patch new file mode 100644 index 000000000000..8ebb1bceb06f --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.1-fixes.patch @@ -0,0 +1,21 @@ +--- libs/libGraphics/VTKWindow.cpp.orig 2012-01-27 19:54:55.000000000 +0100 ++++ libs/libGraphics/VTKWindow.cpp 2012-01-27 19:54:49.000000000 +0100 +@@ -3,6 +3,7 @@ + #include "VTKWrap.hpp" + #include "VTKWindow.hpp" + ++#include <QObject> + #include <QtCore/QString> + #include <QtGui/QLabel> + #include <QtGui/QMenu> +--- libs/libGraphics/GLRenderEngine.cpp.orig 2011-11-27 00:27:43.000000000 +0000 ++++ libs/libGraphics/GLRenderEngine.cpp 2012-01-29 03:57:48.453433954 +0000 +@@ -16,6 +16,8 @@ + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ ++ ++#include <GL/glu.h> + #include "GLRenderEngine.hpp" + #include <qimage.h> + #include <qpainter.h> diff --git a/sci-mathematics/freemat/files/freemat-4.1-have_fftw.patch b/sci-mathematics/freemat/files/freemat-4.1-have_fftw.patch new file mode 100644 index 000000000000..1415b3d716aa --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.1-have_fftw.patch @@ -0,0 +1,78 @@ +diff -rupN libs/libCore.orig/FFT.cpp libs/libCore/FFT.cpp +--- libs/libCore.orig/FFT.cpp 2011-11-27 01:27:43.856779929 +0100 ++++ libs/libCore/FFT.cpp 2012-01-30 00:14:18.682460150 +0100 +@@ -104,6 +104,7 @@ public: + #endif + + ++#if HAVE_FFTWF + class OpVecFFT { + WrapFFTWF fft_float; + WrapFFTW fft_double; +@@ -169,7 +170,9 @@ public: + } + } + }; ++#endif + ++#if HAVE_FFTWF + class OpVecIFFT { + WrapFFTWF fft_float; + WrapFFTW fft_double; +@@ -228,6 +231,7 @@ public: + } + } + }; ++#endif + + //! + //@Module FFT (Inverse) Fast Fourier Transform Function +@@ -350,6 +354,8 @@ public: + //inputs x len dim + //outputs y + //! ++ ++#if HAVE_FFTWF + ArrayVector FFTFunction(int nargout, const ArrayVector& arg) { + // Get the data argument + if (arg.size() < 1) +@@ -384,7 +390,9 @@ ArrayVector FFTFunction(int nargout, con + OpVecFFT op(FFTLength); + return ArrayVector(VectorOpDynamic<OpVecFFT>(arg0,FFTLength,FFTDim,op)); + } ++#endif + ++#if HAVE_FFTWF + ArrayVector IFFTFunction(int nargout, const ArrayVector& arg) { + // Get the data argument + if (arg.size() < 1) +@@ -419,3 +427,4 @@ ArrayVector IFFTFunction(int nargout, co + OpVecIFFT op(FFTLength); + return ArrayVector(VectorOpDynamic<OpVecIFFT>(arg0,FFTLength,FFTDim,op)); + } ++#endif +diff -rupN libs/libCore.orig/Loader.cpp libs/libCore/Loader.cpp +--- libs/libCore.orig/Loader.cpp 2012-01-30 00:08:41.463155562 +0100 ++++ libs/libCore/Loader.cpp 2012-01-30 00:12:24.422448304 +0100 +@@ -43,8 +43,10 @@ ArrayVector FeofFunction(int, const Arra + ArrayVector FseekFunction(int, const ArrayVector&); + ArrayVector FgetlineFunction(int, const ArrayVector&); + ArrayVector FscanfFunction(int, const ArrayVector&); ++#ifdef HAVE_FFTW + ArrayVector FFTFunction(int, const ArrayVector&); + ArrayVector IFFTFunction(int, const ArrayVector&); ++#endif + ArrayVector StrCmpFunction(int, const ArrayVector&); + ArrayVector StrCmpiFunction(int, const ArrayVector&); + ArrayVector StrnCmpFunction(int, const ArrayVector&); +@@ -286,8 +288,10 @@ void LoadBuiltinFunctionsCore(Context *c + context->addFunction("fseek",FseekFunction,0,3,0,"handle","offset","style",NULL); + context->addFunction("fgetline",FgetlineFunction,0,1,1,"handle",NULL); + context->addFunction("fscanf",FscanfFunction,0,-1,-1,NULL); ++#ifdef HAVE_FFTW + context->addFunction("fft",FFTFunction,0,3,1,"x","len","dim",NULL); + context->addFunction("ifft",IFFTFunction,0,3,1,"x","len","dim",NULL); ++#endif + context->addFunction("strcmp",StrCmpFunction,0,2,1,"string1","string2",NULL); + context->addFunction("strcmpi",StrCmpiFunction,0,2,1,"string1","string2",NULL); + context->addFunction("strncmp",StrnCmpFunction,0,3,1,"string1","string2","len",NULL); diff --git a/sci-mathematics/freemat/files/freemat-4.1-local_libffi.patch b/sci-mathematics/freemat/files/freemat-4.1-local_libffi.patch new file mode 100644 index 000000000000..3fbfef9c9516 --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.1-local_libffi.patch @@ -0,0 +1,13 @@ +--- CMakeLists.txt.orig 2011-11-27 01:27:11.116482600 +0100 ++++ CMakeLists.txt 2012-01-29 17:09:54.072342306 +0100 +@@ -160,8 +160,8 @@ if(MINGW) + INCLUDE_DIRECTORIES(${FFI_INCLUDE_DIR})
+ INSTALL(FILES ${FFI_LIBRARY_DLL} DESTINATION bin )
+ else(MINGW)
+- FIND_LIBRARY(FFI_LIBRARY NAMES ffi DOC "Location of the FFI library" PATHS ${LOCAL_PATH})
+- FIND_PATH(FFI_INCLUDE_DIR ffi.h doc "Location of ffi.h" PATHS ${LOCAL_PATH} /usr/include/ffi /usr/lib64/libffi-3.0.9/include)
++ FIND_LIBRARY(FFI_LIBRARY NAMES ffi DOC "Location of the FFI library" PATHS ${LOCAL_PATH} ${PROJECT_SOURCE_DIR}/dependencies/libffi/build/.libs)
++ FIND_PATH(FFI_INCLUDE_DIR ffi.h doc "Location of ffi.h" PATHS ${LOCAL_PATH} /usr/include/ffi /usr/lib64/libffi-3.0.9/include ${PROJECT_SOURCE_DIR}/dependencies/libffi/build/include /mingw/include/ffi)
+ SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${FFI_LIBRARY})
+ INCLUDE_DIRECTORIES(${FFI_INCLUDE_DIR})
+ endif(MINGW)
diff --git a/sci-mathematics/freemat/files/freemat-4.1-portaudio.patch b/sci-mathematics/freemat/files/freemat-4.1-portaudio.patch new file mode 100644 index 000000000000..518ccfbd1334 --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.1-portaudio.patch @@ -0,0 +1,10 @@ +--- libs/thirdparty/portaudio/CMakeLists.txt.orig 2012-01-29 02:08:08.422664514 +0100 ++++ libs/thirdparty/portaudio/CMakeLists.txt 2012-01-29 02:04:26.826460722 +0100 +@@ -73,6 +73,7 @@ IF (NOT WIN32 AND NOT APPLE) + ${CMAKE_CURRENT_SOURCE_DIR}/src/common/pa_stream.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/common/pa_trace.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/hostapi/oss/pa_unix_oss.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/src/hostapi/skeleton/pa_hostapi_skeleton.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/os/unix/pa_unix_hostapis.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/os/unix/pa_unix_util.c ) + ENDIF (NOT WIN32 AND NOT APPLE) diff --git a/sci-mathematics/freemat/files/freemat-4.1-python3.patch b/sci-mathematics/freemat/files/freemat-4.1-python3.patch new file mode 100644 index 000000000000..a7aad97cfc7d --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.1-python3.patch @@ -0,0 +1,24 @@ +diff -Nur tools.orig/jitgen.py tools/jitgen.py +--- tools.orig/jitgen.py 2012-04-13 00:25:18.000000000 +0100 ++++ tools/jitgen.py 2012-04-13 00:25:40.000000000 +0100 +@@ -39,7 +39,7 @@ + f.write("// \n\n// Here, each function gets prototyped.\n"); + f.close() + +-os.path.walk(sys.argv[1], visit, '') ++os.walk(sys.argv[1], visit, '') + + f = open(sys.argv[2],'a') + f.write("static const char* jit_scalar_list[] = {"); +diff -Nur tools.orig/siggen.py tools/siggen.py +--- tools.orig/siggen.py 2012-04-13 00:25:18.000000000 +0100 ++++ tools/siggen.py 2012-04-13 00:25:53.000000000 +0100 +@@ -81,7 +81,7 @@ + function_name = fsplit[1] + function_internal_name = fsplit[2]; + if (function_name == '') or (function_internal_name == ''): +- print 'MISSING Function Name: <%s> <%s> <%s>'%(fline,function_name,function_internal_name) ++ print('MISSING Function Name: <%s> <%s> <%s>'%(fline,function_name,function_internal_name)) + inputs = iline.split() + inputs = inputs[1:] + outputs = oline.split() diff --git a/sci-mathematics/freemat/files/freemat-4.1-use_llvm.patch b/sci-mathematics/freemat/files/freemat-4.1-use_llvm.patch new file mode 100644 index 000000000000..327aa30f09ab --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.1-use_llvm.patch @@ -0,0 +1,29 @@ +--- libs/libMatC/CMakeLists.txt.orig 2011-11-27 01:27:43.000000000 +0100 ++++ libs/libMatC/CMakeLists.txt 2012-01-29 14:39:19.842402326 +0100 +@@ -1,10 +1,14 @@ + + INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ) + ++IF( USE_LLVM ) ++ set(LLVM_SOURCES "CJitFuncClang.cpp") ++endif( USE_LLVM ) ++ + ADD_LIBRARY( MatC + JITFactory.cpp + CJitFunc.cpp +- CJitFuncClang.cpp ++ ${LLVM_SOURCES} + CArray.cpp + ) + +--- libs/libMatC.orig/JITFactory.cpp 2011-11-27 01:27:43.000000000 +0100 ++++ libs/libMatC/JITFactory.cpp 2012-01-29 14:53:17.296686846 +0100 +@@ -1,5 +1,7 @@ + #include "JITFactory.hpp" +-#include "CJitFuncClang.hpp" ++#ifdef HAVE_LLVM ++# include "CJitFuncClang.hpp" ++#endif + + JITFuncBase* JITFactory::GetJITFunc(Interpreter *eval) + { diff --git a/sci-mathematics/freemat/files/freemat-4.2-use_llvm.patch b/sci-mathematics/freemat/files/freemat-4.2-use_llvm.patch new file mode 100644 index 000000000000..c29b8694ddb7 --- /dev/null +++ b/sci-mathematics/freemat/files/freemat-4.2-use_llvm.patch @@ -0,0 +1,45 @@ +--- libs/libMatC/CMakeLists.txt.orig 2011-11-27 01:27:43.000000000 +0100 ++++ libs/libMatC/CMakeLists.txt 2012-01-29 14:39:19.842402326 +0100 +@@ -1,10 +1,14 @@ + + INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ) + ++IF( USE_LLVM ) ++ set(LLVM_SOURCES "CJitFuncClang.cpp") ++endif( USE_LLVM ) ++ + ADD_LIBRARY( MatC + JITFactory.cpp + CJitFunc.cpp +- CJitFuncClang.cpp ++ ${LLVM_SOURCES} + CArray.cpp + ) + +--- libs/libMatC.orig/JITFactory.cpp 2011-11-27 01:27:43.000000000 +0100 ++++ libs/libMatC/JITFactory.cpp 2012-01-29 14:53:17.296686846 +0100 +@@ -1,5 +1,7 @@ + #include "JITFactory.hpp" +-#include "CJitFuncClang.hpp" ++#ifdef HAVE_LLVM ++# include "CJitFuncClang.hpp" ++#endif + + JITFuncBase* JITFactory::GetJITFunc(Interpreter *eval) + { +--- CMakeLists.txt 2014-12-06 21:47:39.685839650 +0100 ++++ CMakeLists.txt 2014-12-06 21:48:01.752127927 +0100 +@@ -249,9 +249,10 @@ + # LLVM Support
+ ######################################################################
+ OPTION(USE_LLVM "Build with LLVM support?" ON)
+-
+-FIND_PACKAGE(LLVM)
+-FIND_PACKAGE(CLANG)
++IF(USE_LLVM)
++ FIND_PACKAGE(LLVM)
++ FIND_PACKAGE(CLANG)
++ENDIF()
+
+ IF (LLVM_FOUND AND CLANG_FOUND)
+ add_definitions(-DHAVE_LLVM)
diff --git a/sci-mathematics/freemat/freemat-4.2.ebuild b/sci-mathematics/freemat/freemat-4.2.ebuild new file mode 100644 index 000000000000..a00f52f3a7ec --- /dev/null +++ b/sci-mathematics/freemat/freemat-4.2.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit eutils cmake-utils fdo-mime + +MY_PN=FreeMat +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Environment for rapid engineering and scientific processing" +HOMEPAGE="http://freemat.sourceforge.net/" +SRC_URI="mirror://sourceforge/freemat/${MY_P}-Source.tar.gz" + +IUSE="volpack vtk" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND="dev-libs/libpcre + media-libs/portaudio + sci-libs/arpack + sci-libs/fftw:3.0 + sci-libs/matio + sci-libs/umfpack + sys-libs/ncurses + virtual/glu + virtual/lapack + virtual/libffi + virtual/opengl + dev-qt/qtgui:4 + dev-qt/qtopengl:4 + dev-qt/qtsvg:4 + dev-qt/qtwebkit:4 + volpack? ( media-libs/volpack ) + vtk? ( sci-libs/vtk )" + +DEPEND="${RDEPEND} + dev-lang/python + virtual/pkgconfig" + +S="${WORKDIR}/${MY_P}-Source" + +src_prepare(){ + epatch \ + "${FILESDIR}"/${PN}-4.1-fixes.patch \ + "${FILESDIR}"/${PN}-4.1-python3.patch \ + "${FILESDIR}"/${P}-use_llvm.patch + rm -f CMakeCache.txt + find . -type f -name '*.moc.cpp' -exec rm -f {} \; + find . -type f -name 'add.so' -exec rm -f {} \; +} + +src_configure() { + mycmakeargs+=( + -DFORCE_SYSTEM_LIBS=ON + -DUSE_LLVM=OFF + -DUSE_ITK=OFF + -DFFI_INCLUDE_DIR="$(pkg-config --cflags-only-I libffi | sed -e s/-I//)" + $(cmake-utils_use_with volpack VOLPACK) + $(cmake-utils_use_with vtk VTK) + ) + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install -j1 + dodoc ChangeLog + newicon images/freemat_small_mod_64.png ${PN}.png + make_desktop_entry FreeMat FreeMat +} + +pkg_postinst() { + fdo-mime_desktop_database_update + elog "Before using ${MY_PN}, do (as a normal user)" + elog "FreeMat -i ${EROOT}usr/share/${MY_P}" + elog "Then start ${MY_PN}, choose Tools -> Path Tool," + elog "select ${EROOT}usr/share/${MY_P}/toolbox and Add With Subfolders" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/sci-mathematics/freemat/metadata.xml b/sci-mathematics/freemat/metadata.xml new file mode 100644 index 000000000000..380a6559bf46 --- /dev/null +++ b/sci-mathematics/freemat/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci-mathematics</herd> + <longdescription lang="en"> + FreeMat is an open sources environment for rapid engineering and + scientific prototyping and data processing. It is similar to + commercial systems such as MATLAB from Mathworks. FreeMat includes a + codeless interface to external C/C++/FORTRAN code, + parallel/distributed algorithm development (via MPI), and plotting + and visualization capabilities. +</longdescription> + <use> + <flag name="volpack">Add volume rendering via <pkg>media-libs/volpack</pkg></flag> + <flag name="vtk">Add 3D capabilities via <pkg>sci-libs/vtk</pkg></flag> + </use> + <upstream> + <remote-id type="sourceforge">freemat</remote-id> + </upstream> +</pkgmetadata> |