2017-07-15 10:35:02 -05:00
|
|
|
.. -*- Mode: rst -*-
|
|
|
|
|
|
|
|
.. include:: ../etc/definitions.rst
|
|
|
|
|
|
|
|
|
|
|
|
Installation
|
|
|
|
============
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
As the sources are being released, the binary packaging is dropped.
|
2019-05-26 08:46:44 -05:00
|
|
|
You may still find (very) old versions here: http://asim.lip6.fr/pub/coriolis/2.0 .
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
In a nutshell, building source consists in pulling the |git| repository then
|
2017-07-15 10:35:02 -05:00
|
|
|
running the |ccb| installer.
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
.. note::
|
|
|
|
The documentation is already generated and commited in the |git| tree.
|
|
|
|
You may not install the additional prerequisites for the documentation.
|
|
|
|
By default the documentation is not generated, just installed by |ccb|.
|
|
|
|
If you really want to re-generate it, add the ``--doc`` flag to |ccb|.
|
|
|
|
|
2017-07-15 10:35:02 -05:00
|
|
|
Main building prerequisites:
|
|
|
|
|
|
|
|
* cmake
|
|
|
|
* C++11-capable compiler
|
2019-05-26 08:46:44 -05:00
|
|
|
* BFD library (provided through ``binutils``).
|
2017-07-15 10:35:02 -05:00
|
|
|
* RapidJSON_
|
|
|
|
* python2.7
|
|
|
|
* boost
|
|
|
|
* libxml2
|
|
|
|
* bzip2
|
|
|
|
* yacc & lex
|
|
|
|
* Qt 4 or Qt 5
|
2019-05-27 11:49:51 -05:00
|
|
|
* PyQt 4 or PyQt 5
|
2019-10-30 10:58:43 -05:00
|
|
|
* Qwt 6
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
Building documentation prerequisites:
|
|
|
|
|
|
|
|
* doxygen
|
|
|
|
* latex
|
|
|
|
* python-docutils (for reStructuredText)
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
The following libraries get directly bundled with |Coriolis|:
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
* LEF/DEF (from `SI2 <https://www.si2.org/>`_)
|
2019-03-04 07:35:16 -06:00
|
|
|
* FLUTE (from `Chris C. N. Chu <http://home.eng.iastate.edu/~cnchu/flute.html>`_)
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
For other distributions, refer to their own packaging system.
|
|
|
|
|
|
|
|
|
2019-10-30 10:58:43 -05:00
|
|
|
Cross Dependencies Issues
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
There is a difficult tangle of dependencies between |Python|, |Qt|, |Qwt| and |PyQt|,
|
|
|
|
the requirements are:
|
|
|
|
|
|
|
|
* A |Python| 2.7.
|
|
|
|
* |Qt|, either 4 or 5.
|
|
|
|
* |Qwt| version 6, compiled against the relevant |Qt| version.
|
|
|
|
* |PyQt|, version 4 or 5, according to the choosen |Qt|.
|
|
|
|
|
|
|
|
Problems arise because:
|
|
|
|
|
|
|
|
* Under |RHEL| 7 or clones, there is no compatible |PyQt5| build compatible with their
|
|
|
|
|Qt| 5 version (we fall short of one minor, they provides |Qt| 5.9 were we need at
|
|
|
|
least |Qt| 5.10). So we have to stick to |Qt| 4 on those platforms.
|
|
|
|
|
|
|
|
Fortunately we can build a |Qwt| 6 with |Qt| 4.
|
|
|
|
|
|
|
|
* Under |Debian| or |Ubuntu| there is no |Qwt| 6 build against |Qt| 4, so we have to
|
|
|
|
use |Qt| 5 and |PyQt| 5.
|
|
|
|
|
|
|
|
|
2017-07-15 10:35:02 -05:00
|
|
|
Fixed Directory Tree
|
|
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2019-05-24 06:24:11 -05:00
|
|
|
In order to simplify the work of the |ccb| installer, the source, build
|
2017-07-15 10:35:02 -05:00
|
|
|
and installation tree is fixed. To successfully compile |Coriolis| you must
|
|
|
|
follow it exactly. The tree is relative to the home directory of the user
|
2019-06-04 07:32:23 -05:00
|
|
|
building it (note :fboxtt:`~/` or :fboxtt:`$HOME/`). Only the source
|
2017-07-15 10:35:02 -05:00
|
|
|
directory needs to be manually created by the user, all others will be
|
|
|
|
automatically created either by |ccb| or the build system.
|
|
|
|
|
2019-10-30 10:58:43 -05:00
|
|
|
|newpage|
|
|
|
|
|
2017-07-15 10:35:02 -05:00
|
|
|
+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
| **Sources** |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| | Sources root | | ~/coriolis-2.x/src |
|
|
|
|
| | **under git** | | ~/coriolis-2.x/src/coriolis |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| **Architecture Dependant Build** |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| | Linux, SL 7, 64b | | ~/coriolis-2.x/Linux.el7_64/Release.Shared/build/<tool> |
|
|
|
|
| | Linux, SL 6, 32b | | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/<tool> |
|
|
|
|
| | Linux, SL 6, 64b | | ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/<tool> |
|
|
|
|
| | Linux, Fedora, 64b | | ~/coriolis-2.x/Linux.fc_64/Release.Shared/build/<tool> |
|
|
|
|
| | Linux, Fedora, 32b | | ~/coriolis-2.x/Linux.fc/Release.Shared/build/<tool> |
|
|
|
|
| | FreeBSD 8, 32b | | ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/<tool> |
|
|
|
|
| | FreeBSD 8, 64b | | ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/<tool> |
|
|
|
|
| | Windows 7, 32b | | ~/coriolis-2.x/Cygwin.W7/Release.Shared/build/<tool> |
|
|
|
|
| | Windows 7, 64b | | ~/coriolis-2.x/Cygwin.W7_64/Release.Shared/build/<tool> |
|
|
|
|
| | Windows 8.x, 32b | | ~/coriolis-2.x/Cygwin.W8/Release.Shared/build/<tool> |
|
|
|
|
| | Windows 8.x, 64b | | ~/coriolis-2.x/Cygwin.W8_64/Release.Shared/build/<tool> |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| **Architecture Dependant Install** |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| Linux, SL 6, 32b | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/ |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| **FHS Compliant Structure under Install** |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
| | Binaries | | .../install/bin |
|
|
|
|
| | Libraries (Python) | | .../install/lib |
|
|
|
|
| | Include by tool | | .../install/include/coriolis2/<project>/<tool> |
|
|
|
|
| | Configuration files | | .../install/etc/coriolis2/ |
|
|
|
|
| | Doc, by tool | | .../install/share/doc/coriolis2/en/html/<tool> |
|
|
|
|
+------------------------------+-------------------------------------------------------------------------------+
|
|
|
|
|
|
|
|
.. note:: *Alternate build types:* the ``Release.Shared`` means an optimized build
|
|
|
|
with shared libraries. But there are also available ``Static`` instead of ``Shared``
|
|
|
|
and ``Debug`` instead of ``Release`` and any combination of them.
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
``Static`` does not work because I don't know yet to mix statically linked binaries
|
2017-07-15 10:35:02 -05:00
|
|
|
and Python modules (which must be dynamic).
|
|
|
|
|
|
|
|
|
|
|
|
Building Coriolis
|
|
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
The actively developed branch
|
|
|
|
-----------------------------
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-27 11:49:51 -05:00
|
|
|
The **devel_anabatic** branch is now closed and we go back to a more classical
|
|
|
|
scheme where **master** is the stable version and **devel** the development one.
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-27 11:49:51 -05:00
|
|
|
The |Coriolis| |git| repository is https://www-soc.lip6.fr/git/coriolis.git
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
Again, the **devel_anabatic** branch is now closed. Please revert to **devel**
|
|
|
|
or **master**.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
Under |RHEL| 7 or clones, they upgraded their version of |Qt| 4 (from 4.6 to 4.8)
|
2019-06-04 07:32:23 -05:00
|
|
|
so the *diagonal line* bug no longer occurs. So we can safely use the default
|
2019-05-27 11:49:51 -05:00
|
|
|
system |Qt| again.
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
Installing on |RedHat| or compatible distributions
|
|
|
|
--------------------------------------------------
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
1. Install or check that the required prerequisites are installed : ::
|
2019-05-26 08:46:44 -05:00
|
|
|
|
|
|
|
dummy@lepka:~> yum install -y git cmake bison flex gcc-c++ libstdc++-devel \
|
|
|
|
binutils-devel \
|
|
|
|
boost-devel boost-python boost-filesystem \
|
|
|
|
boost-regex boost-wave \
|
|
|
|
python-devel libxml2-devel bzip2-devel \
|
2019-05-27 11:49:51 -05:00
|
|
|
qt-devel qwt-devel # Qt 4
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
Note, that the ``Qwt`` packages are directly available from the standart distribution
|
2019-05-27 11:49:51 -05:00
|
|
|
when using |Qt| 4.
|
2019-05-26 08:46:44 -05:00
|
|
|
|
|
|
|
2. Install the unpackaged prerequisites. Currently, only RapidJSON_. ::
|
|
|
|
|
|
|
|
dummy@lepka:~> mkdir -p ~/coriolis-2.x/src/support
|
|
|
|
dummy@lepka:support> cd ~/coriolis-2.x/src/support
|
|
|
|
dummy@lepka:support> git clone http://github.com/miloyip/rapidjson
|
|
|
|
|
|
|
|
|
|
|
|
3. Create the source directory and pull the |git| repository: ::
|
|
|
|
|
|
|
|
dummy@lepka:~> mkdir -p ~/coriolis-2.x/src
|
|
|
|
dummy@lepka:src> cd ~/coriolis-2.x/src
|
|
|
|
dummy@lepka:src> git clone https://www-soc.lip6.fr/git/coriolis.git
|
|
|
|
|
|
|
|
4. Build & install: ::
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
dummy@lepka:src> cd coriolis
|
2019-06-04 07:32:23 -05:00
|
|
|
dummy@lepka:coriolis> git checkout devel
|
2019-05-26 08:46:44 -05:00
|
|
|
dummy@lepka:coriolis> ./bootstrap/ccb.py --project=support \
|
|
|
|
--project=coriolis \
|
|
|
|
--make="-j4 install"
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
.. note::
|
|
|
|
Pre-generated documentation will get installed by the previous command.
|
|
|
|
Only if you did made modifications to it you need to regenerate it with: ::
|
|
|
|
|
|
|
|
dummy@lepka:coriolis> ./bootstrap/ccb.py --project=support \
|
|
|
|
--project=coriolis \
|
|
|
|
--doc --make="-j1 install"
|
|
|
|
|
|
|
|
We need to perform a separate installation of the documentation because it
|
2019-05-26 08:52:18 -05:00
|
|
|
does not support to be generated with a parallel build. So we compile & install in a first
|
2019-05-26 08:46:44 -05:00
|
|
|
stage in ``-j4`` (or whatever) then we generate the documentation in ``-j1``
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-03-04 07:35:16 -06:00
|
|
|
Under |RHEL6| or clones, you must build using the |devtoolset|, the version is to
|
|
|
|
be given as argument: ::
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
dummy@lepka:coriolis> ./bootstrap/ccb.py --project=coriolis \
|
|
|
|
--devtoolset=8 --make="-j4 install"
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
If you want to use Qt 5 instead of Qt 4, modify the previous steps as follows:
|
2019-05-26 08:46:44 -05:00
|
|
|
|
2019-05-27 11:49:51 -05:00
|
|
|
* At **step 1**, do not install the |QT| 4 related development package (``qt4-devel``),
|
|
|
|
but instead: ::
|
2019-05-26 08:46:44 -05:00
|
|
|
|
2019-05-27 11:49:51 -05:00
|
|
|
dummy@lepka:~> yum install -y qt5-qtbase-devel qt5-qtsvg-devel # Qt 5.
|
|
|
|
|
|
|
|
The package ``qwt-qt5-devel`` and it's dependency ``qwt-qt5`` are not provided
|
|
|
|
by any standard repository (like |EPEL|). You may download them from the
|
|
|
|
`LIP6 Addons Repository <https://ftp.lip6.fr/pub/linux/distributions/slsoc/soc/7/addons/x86_64/repoview/letter_q.group.html>`_
|
|
|
|
Then run: ::
|
|
|
|
|
|
|
|
dummy@lepka:~> yum localinstall -y qwt-qt5-6.1.2-4.fc23.x86_64.rpm \
|
|
|
|
qwt-qt5-6.1.2-4.fc23.x86_64.rpm # Qwt for Qt 5.
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-27 11:49:51 -05:00
|
|
|
* At **step 4**, add a ``--qt5`` argument to the ``ccb.py`` command line.
|
2019-05-26 08:46:44 -05:00
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
* The |Python| scripts that make use of |PyQt| in ``crlcore`` and ``cumulus`` must be
|
2019-05-27 11:49:51 -05:00
|
|
|
edited to import ``PyQt5`` instead of ``PtQt4`` (should find a way to automatically
|
|
|
|
switch between the two of them).
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
The complete list of |ccb| functionalities can be accessed with the ``--help`` argument.
|
|
|
|
It also may be run in graphical mode (``--gui``).
|
|
|
|
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
Building a Debug Enabled Version
|
|
|
|
--------------------------------
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
The ``Release.Shared`` default version of the |Coriolis| is built stripped of symbols
|
2019-05-26 08:46:44 -05:00
|
|
|
and optimized so that it makes analysing a core dump after a crash difficult. In the
|
|
|
|
(unlikely) case of a crash, you may want to build, alongside the optimized version,
|
2019-06-04 07:32:23 -05:00
|
|
|
a debug one which allows forensic examination by |gdb| (or |valgrind| or whatever).
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
Run again ``ccb.py``, adding the ``--debug`` argument: ::
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
dummy@lepka:coriolis> ./bootstrap/ccb.py --project=support \
|
|
|
|
--project=coriolis \
|
|
|
|
--make="-j4 install" --debug
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
As |cgt| is a |Python| script, the right command to run |gdb| is: ::
|
2017-07-15 10:35:02 -05:00
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
dummy@lepka:work> gdb python core.XXXX
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
.. Building the Devel Branch
|
|
|
|
.. -------------------------
|
|
|
|
..
|
|
|
|
.. In the |Coriolis| |git| repository, two branches are present:
|
|
|
|
..
|
|
|
|
.. * The :cb:`master` branch, which contains the latest stable version. This is the
|
|
|
|
.. one used by default if you follow the above instructions.
|
|
|
|
..
|
|
|
|
.. * The :cb:`devel` branch, which obviously contains the latest commits from the
|
|
|
|
.. development team. To use it instead of the :cb:`master` one, do the following
|
|
|
|
.. command just after the first step: ::
|
|
|
|
..
|
|
|
|
.. dummy@lepka:coriolis> git checkout devel
|
|
|
|
.. dummy@lepka:coriolis> ./bootstrap/ccb.py --project=coriolis \
|
|
|
|
.. --make="-j4 install" --debug
|
|
|
|
..
|
2019-05-26 08:52:18 -05:00
|
|
|
.. Be aware that it may require newer versions of the dependencies and may introduce
|
|
|
|
.. incompatibilities with the stable version.
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
|
2019-05-26 08:46:44 -05:00
|
|
|
Installing on |Debian| 9, |Ubuntu| 18 or compatible distributions
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
First, install or check that the required prerequisites are installed : ::
|
2019-05-26 08:46:44 -05:00
|
|
|
|
|
|
|
dummy@lepka:~> sudo apt install -y build-essential binutils-dev \
|
|
|
|
git cmake bison flex gcc python-dev \
|
|
|
|
libboost-all-dev libboost-python-dev \
|
|
|
|
libbz2-dev libxml2-dev rapidjson-dev libbz2-dev \
|
|
|
|
qtbase5-dev libqt5svg5-dev libqwt-qt5-dev \ # Qt 5
|
2019-10-30 10:58:43 -05:00
|
|
|
python-pyqt5 \
|
2019-05-26 08:46:44 -05:00
|
|
|
doxygen dvipng graphviz python-sphinx \
|
|
|
|
texlive-fonts-extra texlive-lang-french
|
|
|
|
|
|
|
|
Second step is to create the source directory and pull the |git| repository: ::
|
|
|
|
|
|
|
|
dummy@lepka:~> mkdir -p ~/coriolis-2.x/src
|
|
|
|
dummy@lepka:src> cd ~/coriolis-2.x/src
|
|
|
|
dummy@lepka:src> git clone https://www-soc.lip6.fr/git/coriolis.git
|
|
|
|
|
|
|
|
Third and final step, build & install: ::
|
|
|
|
|
|
|
|
dummy@lepka:src> cd coriolis
|
2019-06-04 07:32:23 -05:00
|
|
|
dummy@lepka:coriolis> git checkout devel
|
2019-10-30 10:58:43 -05:00
|
|
|
dummy@lepka:coriolis> ./bootstrap/ccb.py --project=coriolis --qt5 \
|
2019-05-26 08:46:44 -05:00
|
|
|
--make="-j4 install"
|
|
|
|
|
|
|
|
|
2017-07-15 10:35:02 -05:00
|
|
|
Additionnal Requirement under |MacOS|
|
|
|
|
-------------------------------------
|
|
|
|
|
2019-06-04 07:32:23 -05:00
|
|
|
|Coriolis| makes use of the :cb:`boost::python` module, but the |macports| |boost|
|
2017-07-15 10:35:02 -05:00
|
|
|
seems unable to work with the |Python| bundled with |MacOS|. So you have to install
|
|
|
|
both of them from |macports|: ::
|
|
|
|
|
2017-10-30 09:33:37 -05:00
|
|
|
dummy@macos:~> port install boost +python27
|
|
|
|
dummy@macos:~> port select python python27
|
|
|
|
dummy@macos:-> export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
The last two lines tell |MacOS| to use the |Python| from |macports| and *not* from
|
|
|
|
the system.
|
|
|
|
|
|
|
|
Then proceed with the generic install instructions.
|
|
|
|
|
|
|
|
|
|
|
|
Packaging Coriolis
|
|
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2019-05-24 06:24:11 -05:00
|
|
|
Packager should not use |ccb|, instead ``bootstrap/Makefile.package`` is provided
|
2017-07-15 10:35:02 -05:00
|
|
|
to emulate a top-level ``autotool`` makefile. Just copy it in the root of the
|
|
|
|
|Coriolis| git repository (``~/corriolis-2.x/src/coriolis/``) and build.
|
|
|
|
|
2019-05-24 06:24:11 -05:00
|
|
|
Sligthly outdated packaging configuration files can also be found under ``bootstrap/``:
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
* ``bootstrap/coriolis2.spec.in`` for |rpm| based distributions.
|
|
|
|
* ``bootstrap/debian`` for |Debian| based distributions.
|
|
|
|
|
|
|
|
|
|
|
|
Hooking up into |Alliance|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|Coriolis| relies on |Alliance| for the cell libraries. So after installing or
|
|
|
|
packaging, you must configure it so that it can found those libraries.
|
|
|
|
|
2017-12-02 08:51:21 -06:00
|
|
|
The easiest way is to setup the |Alliance| environment (i.e. sourcing
|
|
|
|
``.../etc/profile.d/alc_env.{sh,csh}``) **before** setting up |Coriolis| environment
|
|
|
|
(see the next section). To understand how |Coriolis| find/setup |Alliance| you may
|
Migrating the initialisation system to be completely Python-like.
* New: In bootstrap/coriolisEnv.py, add the "etc" directory to the
PYTHONPATH as initialization are now Python modules.
* New: In Hurricane/analogic, first groundwork for the integration of
PIP/MIM/MOM multi-capacitors. Add C++ and Python interface for the
allocation matrix and the list of capacities values.
* Change: In Hurricane::RegularLayer, add a layer parameter to the
constructor so the association between the RegularLayer and it's
BasicLayer can readily be done.
* Change: In Hurricane::Layer, add a new getCut() accessor to get the
cut layer in ViaLayer.
* Change: In Hurricane::DataBase::get(), the Python wrapper should no
longer consider an error if the data-base has not been created yet.
Just return None.
* Bug: In Isobar::PyLayer::getEnclosure() wrapper, if the overall
enclosure is requested, pass the right parameter to the C++ function.
* Change: In AllianceFramework, make public _bindLibraries() and export
it to the Python interface.
* Change: In AllianceFramework::create(), do not longer call bindLibraries().
This now must be done explicitely and afterwards.
* Change: In AllianceFramework::createLibrary() and
Environement::addSYSTEM_LIBRARY(), minor bug corrections that I don't
recall.
* Change: In SearchPath::prepend(), set the selected index to zero and
return it.
* Change: In CRL::System CTOR, add "etc" to the PYTHONPATH as the
configuration files are now organized as Python modules.
* New: In PyCRL, export the CRL::System singleton, it's creation is no
longer triggered by the one of AllianceFramework.
* New: In CRL/etc/, convert most of the configuration files into the
Python module format. For now, keep the old ".conf", but that are no
longer used.
For the real technologies, we cannot keep the directory name as
"180" or "45" as it not allowed by Python syntax, so we create "node180"
or "node45" instead.
Most of the helpers and coriolisInit.py are no longer used now.
To be removed in future commits after being sure that everything
works...
* Bug: In AutoSegment::makeDogleg(AutoContact*), the layer of the contacts
where badly computed when one end of the original segment was attached
to a non-preferred direction segment (mostly on terminal contacts).
Now use the new AutoContact::updateLayer() method.
* Bug: In Dijkstra::load(), limit symetric search area only if the net
is a symmetric one !
* Change: In Katana/python/katanaInit.py, comply with the new initialisation
scheme.
* Change: In Unicorn/cgt.py, comply to the new inititalization scheme.
* Change: In cumulus various Python scripts remove the call to
helpers.staticInitialization() as they are not needed now (we run in
only *one* interpreter, so we correctly share all init).
In plugins/__init__.py, read the new NDA directory variable.
* Bug: In cumulus/plugins/Chip.doCoronafloorplan(), self.railsNb was not
correctly managed when there was no clock.
* Change: In cumulus/plugins/Configuration.coronaContactArray(), compute
the viaPitch from the technology instead of the hard-coded 4.0 lambdas.
In Configuration.loadConfiguration(), read the "ioring.py" from
the new user's settings module.
* Bug: In stratus.dpgen_ADSB2F, gives coordinates translated into DbU to
the XY functions.
In st_model.Save(), use the VstUseConcat flag to get correct VST files.
In st_net.hur_net(), when a net is POWER/GROUND or CLOCK also make it
global.
* Change: In Oroshi/python/WIP_Transistor.py, encapsulate the generator
inside a try/except block to get prettier error (and stop at the first).
2019-10-28 12:09:14 -05:00
|
|
|
have look to the *Configuration and User's Settings* section.
|
2017-07-15 10:35:02 -05:00
|
|
|
|
|
|
|
|
|
|
|
Setting up the Environment (coriolisEnv.py)
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
To simplify the tedious task of configuring your environment, a helper is provided
|
|
|
|
in the ``bootstrap`` source directory (also installed in the directory
|
|
|
|
``.../install/etc/coriolis2/``) : ::
|
|
|
|
|
|
|
|
~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py
|
|
|
|
|
|
|
|
Use it like this: ::
|
|
|
|
|
|
|
|
dummy@lepka:~> eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
|
|
|
|
|
|
|
|
.. note:: **Do not call that script in your environement initialisation.**
|
2019-05-26 08:46:44 -05:00
|
|
|
When used under |RHEL6| or clones, it needs to be run in the |devtoolset|
|
2017-07-15 10:35:02 -05:00
|
|
|
environement. The script then launch a new shell, which may cause an
|
|
|
|
infinite loop if it's called again in, say :cb:`~/.bashrc`.
|
|
|
|
|
|
|
|
Instead you may want to create an alias: ::
|
|
|
|
|
|
|
|
alias c2r='eval "`~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`"'
|