2.12.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

Commit 5eafbb5a authored by Matthias Rungger's avatar Matthias Rungger
Browse files

Merge branch 'master' of https://gitlab.lrz.de/hcs/SCOTS

parents bd8b6af3 a8252a6d
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: https://sourceforge.net/projects/msys2/files/latest/download. 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 : https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html. 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
Title: readme
SCOTS is a C++ tool (with a small Matlab interface) to synthesize controller for
......@@ -24,6 +23,7 @@ SCOTS is a header only library. You only need to add SCOTS source directory to
the include directory in the compiler command.
Further details are found in the readme files in example directories and in the manual.
For installing and running SCOTS on Windows, please refer to the readme-win.txt file.
Directory structure
============
......
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