kusano 2b45e8
kusano 2b45e8
This library was apparently intended for UNIX architectures, meaning that most of the trouble
kusano 2b45e8
is for Windows systems. The other problem is the CPU architecture we'll compile against.
kusano 2b45e8
kusano 2b45e8
kusano 2b45e8
INSTALLATION
kusano 2b45e8
kusano 2b45e8
kusano 2b45e8
WINDOWS 32/64
kusano 2b45e8
kusano 2b45e8
We've managed to compile a STATIC library (.lib) in both 32 and 64 bit. We didn't manage to
kusano 2b45e8
build a dynamic library (lapack errors), but there is no need.
kusano 2b45e8
kusano 2b45e8
The built version is WITHOUT parallel support - Toonz already deals internally with thread
kusano 2b45e8
management, so we'd have deactivated multithreading anyways.
kusano 2b45e8
kusano 2b45e8
As a side note, the problem with threads is apparently related to missing symbols, probably
kusano 2b45e8
due to the absence of pthread implementation in the Windows system. We've not investigated
kusano 2b45e8
further.
kusano 2b45e8
kusano 2b45e8
kusano 2b45e8
So, follow this procedure:
kusano 2b45e8
kusano 2b45e8
1. Download both MINGW and MSYS.
kusano 2b45e8
    EDIT: Maybe MSYS2 could be enough. You could try that first.
kusano 2b45e8
kusano 2b45e8
    1.1  There are many version online, not all suitable. The ones we need has 64 bit compilers,
kusano 2b45e8
         suggested at the following address:
kusano 2b45e8
kusano 2b45e8
            http://www.gaia-gis.it/spatialite-3.0.0-BETA/mingw64_how_to.html
kusano 2b45e8
kusano 2b45e8
         I'm also mentioning the single addresses below:
kusano 2b45e8
kusano 2b45e8
            MINGW: http://sourceforge.net/projects/mingw-w64/ (look for the most downloaded, non the
kusano 2b45e8
                                                               most recent)
kusano 2b45e8
            MSYS:  http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS
kusano 2b45e8
kusano 2b45e8
         Make sure that in the MinGW folder all compiler executables in the "bin/" folder all have
kusano 2b45e8
         the prefix "x86_64-w64-mingw32-".
kusano 2b45e8
kusano 2b45e8
    1.2  In the MSYS version we've used, it was necessary to create the "fstab" file in "/etc",
kusano 2b45e8
         with the line  "c:/MINGW		/mingw", to specify the mingw folder to msys.
kusano 2b45e8
kusano 2b45e8
         Once done, it should be possible to do "cd /mingw". Watch out that for some reason using
kusano 2b45e8
         ls from "/" does not list the folder...
kusano 2b45e8
kusano 2b45e8
2. Decide the target CPU architecture. If this step is skipped, make will automatically search for
kusano 2b45e8
   the compiling system's CPU. The version we built is based on the "nehalem" architecture. It was
kusano 2b45e8
   the one automatically generated on our compiling computer.
kusano 2b45e8
kusano 2b45e8
   To select a specific CPU, add the suffix "TARGET=<your cpu="" target="">" in the following command</your>
kusano 2b45e8
   lines. The list of supported CPUS is specified in "TargetList.txt" inside the OpenBLAS folder.
kusano 2b45e8
kusano 2b45e8
3. Compile using the following commands:
kusano 2b45e8
kusano 2b45e8
        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
kusano 2b45e8
        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
kusano 2b45e8
kusano 2b45e8
   The only difference is in "BINARY=32/64"; "USE_THREAD=0" indicates multithread support deactivation,
kusano 2b45e8
   and we had to specify RANLIB since for some reason the 64 bit version was automatically looking
kusano 2b45e8
   "ranlib" at 32 bit.
kusano 2b45e8
kusano 2b45e8
4. Wait until completion. It should complain that no dll could be created, but the .lib files should
kusano 2b45e8
   have been built correctly.
shun-iwasawa 4ff42f
shun-iwasawa 4ff42f
----------
shun-iwasawa 4ff42f
Change Log
shun-iwasawa 4ff42f
shun-iwasawa 4ff42f
Apr. 8, 2022 Removed ./xianyi-OpenBLAS-e6e87a2/lapack-3.4.1.tgz as it contains unredistributable files (see the issue #3928). The package is still available in http://www.netlib.org/lapack/ just in case.