Currently job artifacts in CI/CD pipelines on LRZ GitLab never expire. Starting from Wed 26.1.2022 the default expiration time will be 30 days (GitLab default). Currently existing artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information:

Commit c63c6fac authored by Mahmoud Mahmoud's avatar Mahmoud Mahmoud
Browse files

the read-me windows

parent 8a2ee9a9
Title: readme-windows-version
This file serves as a complementary readme file. Please refer to the readme.txt file for complete overview about the SCOTS requirements and structure. Here, we present step-by-step guide on how to install and use SCOTS in Windows.
Installation in Windows Systems
1- (MSYS-2 Installation)
You have to downbload and install MSYS2: We follow the default installation where MSYS-2 gets installed to c:\msys64. After installing, you run the following commands on MSYS-2 terminal to update it and install MinGW compilers.
- pacman -Su (to update all)
- pacman -S make
- pacman -S mingw-w64-x86_64-gcc
Then, you need to add "C:\msys64\mingw64\bin" to windwows PATH variable.
2- (CUDD-3.0.0 Installation)
Download and extract the CUDD-3.0.0 library. Now, you should use the mingw64 shell (C:\mingw64_shell.bat) and navigate to cudd root folder then run the configure with:
./configure --enable-shared --enable-obj --enable-dddmp CXXFLAGS='-Wall -Wextra -std=c++11 -g -O3 -D_GLIBCXX_USE_CXX11_ABI=0'
This allows compiling cplusplus interface with old symbol naming for c++11 standard that became default after g++ 5.1. We do so because Matlab supports compilers with versions less than 5.0 (actually g++4.8 or MinGW_64_g++ 4.9) which causes using such old mangled symbols in the object files. More info about this issue : The following are the configurations used for CUDD:
Configuration summary for cudd 3.0.0
Build system : x86_64-pc-mingw64
Host system : x86_64-pc-mingw64
Prefix : '/usr/local'
Compilers : 'gcc -Wall -Wextra -g -O3'
: 'g++ -Wall -Wextra -std=c++0x -g -O3 -D_GLIBCXX_USE_CXX11_ABI=0'
Shared library : yes
dddmp enabled : yes
obj enabled : yes
Now, follow on compiling and instaling CUDD-3.0.0 by running the commands:
- make
- make install
Now you should get the file libcudd.a in /usr/local/lib. Copy it to libcudd.lib in the same folder, while keeping the original (.a) file.
Copy file libcudd-3-0-0-0.dll from /usr/local/bin to the "System32" windows folder.
Copy the config.h and util/util.h files to the /usr/local/include.
3- (Testing: compile a SCOTS example)
For example, you can compile one of the scots examples in the folder scots/examples/hscc16 but take care of the following changes in the Makefile:
- use g++ if you dont have clang++ installed in windows
- use /usr/local as the location of the cudd library instead of /opt/local
- use the (-D_GLIBCXX_USE_CXX11_ABI=0) along with compilation flags
- then use (make) and run the example
4- (Configuring MATLAB)
In MATLAB, addons, install MinGW_64. With MSYS2-shell, Go to mfiles/mexfiles and edit the Makefile:
- /usr/local for as a CUDD path
- change path of MATLAB to match your installation path (linux path style)
- use mex.exe instead of bin/mex
- replace the last line with this: $(CC) CXXFLAGS='$(CXXFLAGS)' -largeArrayDims $(SCOTSINC) $(CUDDINC) $(CUDDLPATH) $(CUDDLIBS) $(TARGET).cc
- make sure mex is confidured to use mingw-64 by:
mex.exe -setup:"(MATLAB_PATH)\bin\win64\mexopts\mingw64.xml" C
mex.exe -setup:"(MATLAB_PATH)\bin\win64\mexopts\mingw64_g++.xml" C++
- make
- restart matlab
5- Now you can compile any of SCOTS's examples (with the same configurations in step 3) from windows. Having the mingw46 folder in the PATH, you can compile directly with g++ from windwos shell or MSYS2 shell with the following:
g++ -Wall -Wextra -std=c++11 -O3 -DNDEBUG -IC:\msys64\usr\local\include -I../../../bdd -I../../../utils -DM_PI=3.14159265359 -LC:\msys64\usr\local\lib -llibcudd $CPP_FILE_NAME$
where $CPP_FILE_NAME$ is the name of the .cc source file.
You can use this as a build command in Visual-Studio
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment