tahoma2d/thirdparty/openblas
Shinya Kitaoka fd19c4eedf Support Visual Studio 2015 (#544)
* Small changes, for some reason VS 2015 can't link cprintf and they added a second function std::map::count and bind couldn't resolve the function. Substituted with a lambda-expression.

* Created all 64bit version of the 3rd party libs.

* Cleanup popup opens CleanupSettings instead of CleanupSettingsPane. Not finished, panel is wrong now (also uses CleanupSettings).

* Tried to get Twain working, failed.

* When there are more then 3 peg holes create additional holes.

* When a hole touches the boundary it should still be considered a hole.

* Do not compare dot size against fixed size. Will not work in some scan resolutions. Used the same value (PERCENT * max dot size) as later in the code in compare_dots.

* When there are more than three peg holes the code looked for the best fit and used that. The problem was, that the middle hole was used as center for auto center. For three peg holes that is correct, but does not work for more than three. Now the best fit is calculated and from there the offset of the middle of the three best fit holes is calculated and applied.

* One of the last changes broke VS2015 compatibility, it chocked on a missing include.

* fix for msvs2013

* revert autopos.cpp

* apply clang-format

* use GIT-LFS
2016-07-04 17:50:30 +09:00
..
xianyi-OpenBLAS-e6e87a2 Add OpenBLAS 2016-03-24 02:47:04 +09:00
libopenblas_32.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
libopenblas_64.lib Support Visual Studio 2015 (#544) 2016-07-04 17:50:30 +09:00
README.txt Add OpenBLAS 2016-03-24 02:47:04 +09:00

This library was apparently intended for UNIX architectures, meaning that most of the trouble
is for Windows systems. The other problem is the CPU architecture we'll compile against.


INSTALLATION


WINDOWS 32/64

We've managed to compile a STATIC library (.lib) in both 32 and 64 bit. We didn't manage to
build a dynamic library (lapack errors), but there is no need.

The built version is WITHOUT parallel support - Toonz already deals internally with thread
management, so we'd have deactivated multithreading anyways.

As a side note, the problem with threads is apparently related to missing symbols, probably
due to the absence of pthread implementation in the Windows system. We've not investigated
further.


So, follow this procedure:

1. Download both MINGW and MSYS.
    EDIT: Maybe MSYS2 could be enough. You could try that first.

    1.1  There are many version online, not all suitable. The ones we need has 64 bit compilers,
         suggested at the following address:

            http://www.gaia-gis.it/spatialite-3.0.0-BETA/mingw64_how_to.html

         I'm also mentioning the single addresses below:

            MINGW: http://sourceforge.net/projects/mingw-w64/ (look for the most downloaded, non the
                                                               most recent)
            MSYS:  http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS

         Make sure that in the MinGW folder all compiler executables in the "bin/" folder all have
         the prefix "x86_64-w64-mingw32-".

    1.2  In the MSYS version we've used, it was necessary to create the "fstab" file in "/etc",
         with the line  "c:/MINGW		/mingw", to specify the mingw folder to msys.

         Once done, it should be possible to do "cd /mingw". Watch out that for some reason using
         ls from "/" does not list the folder...

2. Decide the target CPU architecture. If this step is skipped, make will automatically search for
   the compiling system's CPU. The version we built is based on the "nehalem" architecture. It was
   the one automatically generated on our compiling computer.

   To select a specific CPU, add the suffix "TARGET=<your target CPU>" in the following command
   lines. The list of supported CPUS is specified in "TargetList.txt" inside the OpenBLAS folder.

3. Compile using the following commands:

        32-bit: make BINARY=32 USE_THREAD=0 CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran RANLIB=x86_64-w64-mingw32-ranlib
        64-bit: make BINARY=64 USE_THREAD=0 CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran RANLIB=x86_64-w64-mingw32-ranlib

   The only difference is in "BINARY=32/64"; "USE_THREAD=0" indicates multithread support deactivation,
   and we had to specify RANLIB since for some reason the 64 bit version was automatically looking
   "ranlib" at 32 bit.

4. Wait until completion. It should complain that no dll could be created, but the .lib files should
   have been built correctly.