Support for Windows/Cygwin, part 2.
* Change: In bootstrap, in ccb, builder and coriolisEnv.py, correct detection of the windows architecture (32 or 64 bits). Under Cygwin, add the directory of the dll into the PATH also. Uses "site-package" as the location of Python modules (*not* "dist-package"). Use gnu++0x under Cygwin instead of c++11. * Change: In Etesian, if Coloquinte is not found, do not stop the compilation, just disable the tool altogether. * Change: In Hurricane, In Backtrace, disable backtrace under Cygwin as it uses features specific of the glibc. * Change: In Knik, use HUGE_VAL instead of HUGE (not present under Cygwin), add the <cmath> header. * Change: In Unicorn, Coloquinte no longer stops the compilation.
This commit is contained in:
parent
520b9ae382
commit
09f515c62a
|
@ -131,10 +131,10 @@ class Configuration ( object ):
|
||||||
self._osFreeBSD8x_64 = re.compile (".*FreeBSD 8.*x86_64.*")
|
self._osFreeBSD8x_64 = re.compile (".*FreeBSD 8.*x86_64.*")
|
||||||
self._osFreeBSD8x = re.compile (".*FreeBSD 8.*")
|
self._osFreeBSD8x = re.compile (".*FreeBSD 8.*")
|
||||||
self._osDarwin = re.compile (".*Darwin.*")
|
self._osDarwin = re.compile (".*Darwin.*")
|
||||||
self._osCygwinW7_64 = re.compile (".*CYGWIN_NT-6\.1-WOW64.*")
|
self._osCygwinW7_64 = re.compile (".*CYGWIN_NT-6\.1.*x86_64.*")
|
||||||
self._osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*")
|
self._osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*i686.*")
|
||||||
self._osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3]-WOW64.*")
|
self._osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3].*x86_64.*")
|
||||||
self._osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*")
|
self._osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*i686.*")
|
||||||
|
|
||||||
uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE )
|
uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE )
|
||||||
lines = uname.stdout.readlines()
|
lines = uname.stdout.readlines()
|
||||||
|
|
|
@ -64,10 +64,10 @@ def guessOs ():
|
||||||
osFreeBSD8x_64 = re.compile (".*FreeBSD 8.*x86_64.*")
|
osFreeBSD8x_64 = re.compile (".*FreeBSD 8.*x86_64.*")
|
||||||
osFreeBSD8x = re.compile (".*FreeBSD 8.*")
|
osFreeBSD8x = re.compile (".*FreeBSD 8.*")
|
||||||
osDarwin = re.compile (".*Darwin.*")
|
osDarwin = re.compile (".*Darwin.*")
|
||||||
osCygwinW7_64 = re.compile (".*CYGWIN_NT-6\.1-WOW64.*")
|
osCygwinW7_64 = re.compile (".*CYGWIN_NT-6\.1.*x86_64.*")
|
||||||
osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*")
|
osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*i686.*")
|
||||||
osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3]-WOW64.*")
|
osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3].*x86_64.*")
|
||||||
osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*")
|
osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*i686.*")
|
||||||
|
|
||||||
uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE )
|
uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE )
|
||||||
lines = uname.stdout.readlines()
|
lines = uname.stdout.readlines()
|
||||||
|
|
|
@ -72,10 +72,15 @@
|
||||||
#
|
#
|
||||||
# Adds -Wall to the C/C++ flags.
|
# Adds -Wall to the C/C++ flags.
|
||||||
#
|
#
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-std=c++0x -Wall -g" CACHE STRING "C Compiler Debug options." FORCE)
|
if(CYGWIN)
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-std=c++0x -Wall -O2 -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE)
|
set(CXX_STANDARD "gnu++0x")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-std=c++0x -Wall -g" CACHE STRING "C++ Compiler Debug options." FORCE)
|
else()
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-std=c++0x -Wall -O2 -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE)
|
set(CXX_STANDARD "c++11")
|
||||||
|
endif()
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall -g" CACHE STRING "C Compiler Debug options." FORCE)
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall -g" CACHE STRING "C++ Compiler Debug options." FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -44,10 +44,10 @@ def guessOs ():
|
||||||
osFreeBSD8x_amd64 = re.compile (".*FreeBSD 8.*amd64.*")
|
osFreeBSD8x_amd64 = re.compile (".*FreeBSD 8.*amd64.*")
|
||||||
osFreeBSD8x_64 = re.compile (".*FreeBSD 8.*x86_64.*")
|
osFreeBSD8x_64 = re.compile (".*FreeBSD 8.*x86_64.*")
|
||||||
osFreeBSD8x = re.compile (".*FreeBSD 8.*")
|
osFreeBSD8x = re.compile (".*FreeBSD 8.*")
|
||||||
osCygwinW7_64 = re.compile (".*CYGWIN_NT-6\.1-WOW64.*")
|
osCygwinW7_64 = re.compile (".*CYGWIN_NT-6\.1.*x86_64.*")
|
||||||
osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*")
|
osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*i686.*")
|
||||||
osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3]-WOW64.*")
|
osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3].*x86_64.*")
|
||||||
osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*")
|
osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*i686.*")
|
||||||
|
|
||||||
uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE )
|
uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE )
|
||||||
lines = uname.stdout.readlines()
|
lines = uname.stdout.readlines()
|
||||||
|
@ -173,6 +173,9 @@ if __name__ == "__main__":
|
||||||
sysconfDir = coriolisTop + "/etc/coriolis2"
|
sysconfDir = coriolisTop + "/etc/coriolis2"
|
||||||
shellMessage = "Using user-selected Coriolis 2 (%s)" % rootDir
|
shellMessage = "Using user-selected Coriolis 2 (%s)" % rootDir
|
||||||
|
|
||||||
|
if osType.startswith("Cygwin"):
|
||||||
|
strippedPath = "%s/%s:%s" % ( coriolisTop, libDir, strippedPath )
|
||||||
|
|
||||||
absLibDir = "%s/%s" % ( coriolisTop, libDir )
|
absLibDir = "%s/%s" % ( coriolisTop, libDir )
|
||||||
strippedPath = "%s/bin:%s" % ( coriolisTop, strippedPath )
|
strippedPath = "%s/bin:%s" % ( coriolisTop, strippedPath )
|
||||||
strippedLibraryPath = "%s:%s" % ( absLibDir , strippedLibraryPath )
|
strippedLibraryPath = "%s:%s" % ( absLibDir , strippedLibraryPath )
|
||||||
|
@ -180,7 +183,10 @@ if __name__ == "__main__":
|
||||||
if not options.nopython:
|
if not options.nopython:
|
||||||
pyVersion = sys.version_info
|
pyVersion = sys.version_info
|
||||||
version = "%d.%d" % (pyVersion[0],pyVersion[1])
|
version = "%d.%d" % (pyVersion[0],pyVersion[1])
|
||||||
if osType.startswith("Linux.SL") or osType.startswith("Linux.sl") or osType.startswith("Darwin"):
|
if osType.startswith("Linux.SL") \
|
||||||
|
or osType.startswith("Linux.sl") \
|
||||||
|
or osType.startswith("Darwin") \
|
||||||
|
or osType.startswith("Cygwin"):
|
||||||
sitePackagesDir = "%s/python%s/site-packages" % (absLibDir,version)
|
sitePackagesDir = "%s/python%s/site-packages" % (absLibDir,version)
|
||||||
else:
|
else:
|
||||||
sitePackagesDir = "%s/python%s/dist-packages" % (absLibDir,version)
|
sitePackagesDir = "%s/python%s/dist-packages" % (absLibDir,version)
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(COLOQUINTE REQUIRED)
|
find_package(COLOQUINTE )
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(LEFDEF REQUIRED)
|
find_package(LEFDEF REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
@ -30,6 +30,10 @@
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(cmake_modules)
|
add_subdirectory(cmake_modules)
|
||||||
|
|
||||||
|
if(COLOQUINTE_FOUND)
|
||||||
|
add_definitions(-DHAVE_COLOQUINTE)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_DOC)
|
if(BUILD_DOC)
|
||||||
find_package(Doxygen)
|
find_package(Doxygen)
|
||||||
# if(DOXYGEN_FOUND)
|
# if(DOXYGEN_FOUND)
|
||||||
|
|
|
@ -17,7 +17,9 @@
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
#if HAVE_COLOQUINTE
|
||||||
#include "coloquinte/circuit_graph.hxx"
|
#include "coloquinte/circuit_graph.hxx"
|
||||||
|
#endif
|
||||||
#include "vlsisapd/utilities/Dots.h"
|
#include "vlsisapd/utilities/Dots.h"
|
||||||
#include "hurricane/DebugSession.h"
|
#include "hurricane/DebugSession.h"
|
||||||
#include "hurricane/Bug.h"
|
#include "hurricane/Bug.h"
|
||||||
|
@ -99,6 +101,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if HAVE_COLOQUINTE
|
||||||
Coloquinte::cell::pin::pin_dir extractDirection ( const RoutingPad* rp )
|
Coloquinte::cell::pin::pin_dir extractDirection ( const RoutingPad* rp )
|
||||||
{
|
{
|
||||||
switch ( rp->_getEntityAsComponent()->getNet()->getDirection() ) {
|
switch ( rp->_getEntityAsComponent()->getNet()->getDirection() ) {
|
||||||
|
@ -111,6 +114,7 @@ namespace {
|
||||||
|
|
||||||
return Coloquinte::cell::pin::O;
|
return Coloquinte::cell::pin::O;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Point extractRpOffset ( const RoutingPad* rp )
|
Point extractRpOffset ( const RoutingPad* rp )
|
||||||
|
@ -230,7 +234,9 @@ namespace Etesian {
|
||||||
|
|
||||||
EtesianEngine::~EtesianEngine ()
|
EtesianEngine::~EtesianEngine ()
|
||||||
{
|
{
|
||||||
|
#if HAVE_COLOQUINTE
|
||||||
if (_circuit) delete _circuit;
|
if (_circuit) delete _circuit;
|
||||||
|
#endif
|
||||||
delete _configuration;
|
delete _configuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,6 +295,7 @@ namespace Etesian {
|
||||||
|
|
||||||
void EtesianEngine::place ( unsigned int slowMotion )
|
void EtesianEngine::place ( unsigned int slowMotion )
|
||||||
{
|
{
|
||||||
|
#if HAVE_COLOQUINTE
|
||||||
cmess1 << " o Converting <" << getCell()->getName() << "> into Coloquinte." << endl;
|
cmess1 << " o Converting <" << getCell()->getName() << "> into Coloquinte." << endl;
|
||||||
|
|
||||||
resetPlacement();
|
resetPlacement();
|
||||||
|
@ -500,11 +507,15 @@ namespace Etesian {
|
||||||
|
|
||||||
_updatePlacement( 1 );
|
_updatePlacement( 1 );
|
||||||
_flags &= ~NoPlacement;
|
_flags &= ~NoPlacement;
|
||||||
|
#else
|
||||||
|
cerr << Warning("Coloquinte library wasn't found, Etesian is disabled.") << endl;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EtesianEngine::_updatePlacement ( unsigned int placementId )
|
void EtesianEngine::_updatePlacement ( unsigned int placementId )
|
||||||
{
|
{
|
||||||
|
#if HAVE_COLOQUINTE
|
||||||
UpdateSession::open();
|
UpdateSession::open();
|
||||||
|
|
||||||
forEach ( Occurrence, ioccurrence, getCell()->getLeafInstanceOccurrences() )
|
forEach ( Occurrence, ioccurrence, getCell()->getLeafInstanceOccurrences() )
|
||||||
|
@ -536,6 +547,7 @@ namespace Etesian {
|
||||||
UpdateSession::close();
|
UpdateSession::close();
|
||||||
|
|
||||||
if (_cellWidget) _cellWidget->refresh();
|
if (_cellWidget) _cellWidget->refresh();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// Copyright (c) BULL S.A. 2000-2010, All Rights Reserved
|
// Copyright (c) BULL S.A. 2000-2014, All Rights Reserved
|
||||||
//
|
//
|
||||||
// This file is part of Hurricane.
|
// This file is part of Hurricane.
|
||||||
//
|
//
|
||||||
|
@ -19,26 +19,20 @@
|
||||||
// License along with Hurricane. If not, see
|
// License along with Hurricane. If not, see
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// +-----------------------------------------------------------------+
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
// | |
|
|
||||||
// | H U R R I C A N E |
|
// | H U R R I C A N E |
|
||||||
// | V L S I B a c k e n d D a t a - B a s e |
|
// | V L S I B a c k e n d D a t a - B a s e |
|
||||||
// | |
|
// | |
|
||||||
// | Author : Remy Escassut |
|
// | Author : Jean-Paul Chaput |
|
||||||
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./Error.cpp" |
|
// | C++ Module : "./Backtrace.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
|
#if (defined __linux__ || defined __FreeBSD__ || defined __APPLE__)
|
||||||
#include <execinfo.h>
|
#include <execinfo.h>
|
||||||
|
#endif
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <boost/regex.hpp>
|
#include <boost/regex.hpp>
|
||||||
|
@ -72,9 +66,11 @@ namespace Hurricane {
|
||||||
Backtrace::Backtrace ()
|
Backtrace::Backtrace ()
|
||||||
: _stack()
|
: _stack()
|
||||||
{
|
{
|
||||||
|
#if (defined __linux__ || defined __FreeBSD__ || defined __APPLE__)
|
||||||
void* rawStack [ _stackSize ];
|
void* rawStack [ _stackSize ];
|
||||||
size_t depth = backtrace ( rawStack, _stackSize );
|
size_t depth = backtrace ( rawStack, _stackSize );
|
||||||
char** symbols = backtrace_symbols ( rawStack, depth );
|
char** symbols = backtrace_symbols ( rawStack, depth );
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (defined __linux__ || defined __FreeBSD__)
|
#if (defined __linux__ || defined __FreeBSD__)
|
||||||
boost::regex re ( "([^/]+)\\(([^+]+)\\+" );
|
boost::regex re ( "([^/]+)\\(([^+]+)\\+" );
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// Copyright (c) BULL S.A. 2000-2009, All Rights Reserved
|
// Copyright (c) BULL S.A. 2000-2014, All Rights Reserved
|
||||||
//
|
//
|
||||||
// This file is part of Hurricane.
|
// This file is part of Hurricane.
|
||||||
//
|
//
|
||||||
|
@ -30,7 +30,6 @@
|
||||||
// +-----------------------------------------------------------------+
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
#include <execinfo.h>
|
|
||||||
#include <cstdarg>
|
#include <cstdarg>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <boost/regex.hpp>
|
#include <boost/regex.hpp>
|
||||||
|
|
|
@ -87,6 +87,7 @@
|
||||||
${BOOKSHELF_LIBRARY}
|
${BOOKSHELF_LIBRARY}
|
||||||
${CIF_LIBRARY}
|
${CIF_LIBRARY}
|
||||||
${AGDS_LIBRARY}
|
${AGDS_LIBRARY}
|
||||||
|
${UTILITIES_LIBRARY}
|
||||||
${LEFDEF_LIBRARIES}
|
${LEFDEF_LIBRARIES}
|
||||||
${OA_LIBRARIES}
|
${OA_LIBRARIES}
|
||||||
${QtX_LIBRARIES}
|
${QtX_LIBRARIES}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
#include "crlcore/Utilities.h"
|
#include "crlcore/Utilities.h"
|
||||||
#include "hurricane/Breakpoint.h"
|
#include "hurricane/Breakpoint.h"
|
||||||
#include "hurricane/Warning.h"
|
#include "hurricane/Warning.h"
|
||||||
|
@ -199,7 +200,7 @@ float Edge::getCost ( Edge* arrivalEdge )
|
||||||
{
|
{
|
||||||
// 20/10/2010: Check for null capacity, which may occurs after back-annotation
|
// 20/10/2010: Check for null capacity, which may occurs after back-annotation
|
||||||
// by Kite.
|
// by Kite.
|
||||||
if ( _capacity == 0.0 ) return (float)(HUGE);
|
if ( _capacity == 0.0 ) return (float)(HUGE_VAL);
|
||||||
|
|
||||||
//#ifdef __USE_CONGESTION__
|
//#ifdef __USE_CONGESTION__
|
||||||
if ( __congestion__ ) {
|
if ( __congestion__ ) {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -1008,7 +1009,7 @@ int Graph::initRouting ( Net* net )
|
||||||
//cerr << " [0;32mAdding vertex to _vertexes_to_route: continue[0m" << endl;
|
//cerr << " [0;32mAdding vertex to _vertexes_to_route: continue[0m" << endl;
|
||||||
_vertexes_to_route.insert ( contactVertex );
|
_vertexes_to_route.insert ( contactVertex );
|
||||||
_searchingArea.merge ( contactVertex->getBox() );
|
_searchingArea.merge ( contactVertex->getBox() );
|
||||||
contactVertex->setDistance((float)(HUGE));
|
contactVertex->setDistance((float)(HUGE_VAL));
|
||||||
contactVertex->setPredecessor(NULL);
|
contactVertex->setPredecessor(NULL);
|
||||||
currentConnexID++;
|
currentConnexID++;
|
||||||
}
|
}
|
||||||
|
@ -1048,7 +1049,7 @@ int Graph::initRouting ( Net* net )
|
||||||
_searchingArea.merge ( rpVertex->getBox() );
|
_searchingArea.merge ( rpVertex->getBox() );
|
||||||
rpVertex->setConnexID ( currentConnexID );
|
rpVertex->setConnexID ( currentConnexID );
|
||||||
rpVertex->setNetStamp ( _netStamp );
|
rpVertex->setNetStamp ( _netStamp );
|
||||||
rpVertex->setDistance((float)(HUGE));
|
rpVertex->setDistance((float)(HUGE_VAL));
|
||||||
rpVertex->setPredecessor(NULL);
|
rpVertex->setPredecessor(NULL);
|
||||||
currentConnexID++;
|
currentConnexID++;
|
||||||
}
|
}
|
||||||
|
@ -1134,7 +1135,7 @@ void Graph::Dijkstra()
|
||||||
while ( _vertexes_to_route.size() > 1 ) {
|
while ( _vertexes_to_route.size() > 1 ) {
|
||||||
// Now, let's expanse the top of the queue
|
// Now, let's expanse the top of the queue
|
||||||
VertexList reachedVertexes;
|
VertexList reachedVertexes;
|
||||||
float reachedDistance = (float)(HUGE);
|
float reachedDistance = (float)(HUGE_VAL);
|
||||||
|
|
||||||
//checkGraphConsistency();
|
//checkGraphConsistency();
|
||||||
if (ltracelevel() >= 600) {
|
if (ltracelevel() >= 600) {
|
||||||
|
@ -1266,7 +1267,7 @@ void Graph::Dijkstra()
|
||||||
message << " Unable to reach target on net " << _working_net->getName() << ".";
|
message << " Unable to reach target on net " << _working_net->getName() << ".";
|
||||||
throw Error( message.str() );
|
throw Error( message.str() );
|
||||||
}
|
}
|
||||||
assert( reachedDistance < (float)(HUGE) );
|
assert( reachedDistance < (float)(HUGE_VAL) );
|
||||||
|
|
||||||
ltrace(600) << "Updating two connex components:" << endl;
|
ltrace(600) << "Updating two connex components:" << endl;
|
||||||
ltrace(600) << "1. " << (*(reachedVertexes.begin())) << endl;
|
ltrace(600) << "1. " << (*(reachedVertexes.begin())) << endl;
|
||||||
|
@ -1367,8 +1368,8 @@ void Graph::Monotonic()
|
||||||
while ( topEdge ) {
|
while ( topEdge ) {
|
||||||
Vertex* currentVertex = topEdge->getOpposite ( vertPred );
|
Vertex* currentVertex = topEdge->getOpposite ( vertPred );
|
||||||
if ( currentVertex->getPosition().getY() <= targetY ) {
|
if ( currentVertex->getPosition().getY() <= targetY ) {
|
||||||
float vertDistance = (float)(HUGE);
|
float vertDistance = (float)(HUGE_VAL);
|
||||||
float horzDistance = (float)(HUGE);
|
float horzDistance = (float)(HUGE_VAL);
|
||||||
|
|
||||||
vertDistance = vertPred->getDistance() + topEdge->getCost ( vertPred->getPredecessor() );
|
vertDistance = vertPred->getDistance() + topEdge->getCost ( vertPred->getPredecessor() );
|
||||||
Edge* leftEdge = currentVertex->getHEdgeIn();
|
Edge* leftEdge = currentVertex->getHEdgeIn();
|
||||||
|
@ -1442,8 +1443,8 @@ void Graph::Monotonic()
|
||||||
while ( bottomEdge ) {
|
while ( bottomEdge ) {
|
||||||
Vertex* currentVertex = bottomEdge->getOpposite ( vertPred );
|
Vertex* currentVertex = bottomEdge->getOpposite ( vertPred );
|
||||||
if ( currentVertex->getPosition().getY() >= targetY ) {
|
if ( currentVertex->getPosition().getY() >= targetY ) {
|
||||||
float vertDistance = (float)(HUGE);
|
float vertDistance = (float)(HUGE_VAL);
|
||||||
float horzDistance = (float)(HUGE);
|
float horzDistance = (float)(HUGE_VAL);
|
||||||
|
|
||||||
vertDistance = vertPred->getDistance() + bottomEdge->getCost ( vertPred->getPredecessor() );
|
vertDistance = vertPred->getDistance() + bottomEdge->getCost ( vertPred->getPredecessor() );
|
||||||
Edge* leftEdge = currentVertex->getHEdgeIn();
|
Edge* leftEdge = currentVertex->getHEdgeIn();
|
||||||
|
@ -1811,7 +1812,7 @@ void Graph::rebuildConnexComponent ( Contact* contact, int connexID, Segment* ar
|
||||||
contactVertex->setContact ( contact );
|
contactVertex->setContact ( contact );
|
||||||
contactVertex->setConnexID ( connexID );
|
contactVertex->setConnexID ( connexID );
|
||||||
contactVertex->setNetStamp ( _netStamp );
|
contactVertex->setNetStamp ( _netStamp );
|
||||||
contactVertex->setDistance((float)(HUGE));
|
contactVertex->setDistance((float)(HUGE_VAL));
|
||||||
contactVertex->setPredecessor(NULL);
|
contactVertex->setPredecessor(NULL);
|
||||||
//cerr << "from :" << contact << endl;
|
//cerr << "from :" << contact << endl;
|
||||||
//cerr << "arrivalSegment: " << arrivalSegment << endl;
|
//cerr << "arrivalSegment: " << arrivalSegment << endl;
|
||||||
|
@ -1850,7 +1851,7 @@ void Graph::setNetStampConnexID ( Segment* segment, int connexID )
|
||||||
assert(vertex);
|
assert(vertex);
|
||||||
vertex->setNetStamp ( _netStamp );
|
vertex->setNetStamp ( _netStamp );
|
||||||
vertex->setConnexID ( connexID );
|
vertex->setConnexID ( connexID );
|
||||||
vertex->setDistance((float)(HUGE));
|
vertex->setDistance((float)(HUGE_VAL));
|
||||||
Edge* edge = vertex->getVEdgeOut();
|
Edge* edge = vertex->getVEdgeOut();
|
||||||
assert(edge);
|
assert(edge);
|
||||||
edge->setNetStamp ( _netStamp );
|
edge->setNetStamp ( _netStamp );
|
||||||
|
@ -1860,7 +1861,7 @@ void Graph::setNetStampConnexID ( Segment* segment, int connexID )
|
||||||
assert(vertex);
|
assert(vertex);
|
||||||
vertex->setNetStamp ( _netStamp );
|
vertex->setNetStamp ( _netStamp );
|
||||||
vertex->setConnexID ( connexID );
|
vertex->setConnexID ( connexID );
|
||||||
vertex->setDistance((float)(HUGE));
|
vertex->setDistance((float)(HUGE_VAL));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( sourceLineIdx == targetLineIdx ) { // horizontal segment
|
if ( sourceLineIdx == targetLineIdx ) { // horizontal segment
|
||||||
|
@ -1869,7 +1870,7 @@ void Graph::setNetStampConnexID ( Segment* segment, int connexID )
|
||||||
assert(vertex);
|
assert(vertex);
|
||||||
vertex->setNetStamp ( _netStamp );
|
vertex->setNetStamp ( _netStamp );
|
||||||
vertex->setConnexID ( connexID );
|
vertex->setConnexID ( connexID );
|
||||||
vertex->setDistance((float)(HUGE));
|
vertex->setDistance((float)(HUGE_VAL));
|
||||||
Edge* edge = vertex->getHEdgeOut();
|
Edge* edge = vertex->getHEdgeOut();
|
||||||
assert(edge);
|
assert(edge);
|
||||||
edge->setNetStamp ( _netStamp );
|
edge->setNetStamp ( _netStamp );
|
||||||
|
@ -1879,7 +1880,7 @@ void Graph::setNetStampConnexID ( Segment* segment, int connexID )
|
||||||
assert(vertex);
|
assert(vertex);
|
||||||
vertex->setNetStamp ( _netStamp );
|
vertex->setNetStamp ( _netStamp );
|
||||||
vertex->setConnexID ( connexID );
|
vertex->setConnexID ( connexID );
|
||||||
vertex->setDistance((float)(HUGE));
|
vertex->setDistance((float)(HUGE_VAL));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
throw Error ( "Graph::setNetStampConnexId(): what sort of segment is that, a diagonal one?" );
|
throw Error ( "Graph::setNetStampConnexId(): what sort of segment is that, a diagonal one?" );
|
||||||
|
@ -2324,7 +2325,7 @@ void Graph::CleanRoutingState()
|
||||||
// assert (vertex);
|
// assert (vertex);
|
||||||
// vertex->setLocalRingHook(NULL);
|
// vertex->setLocalRingHook(NULL);
|
||||||
// vertex->setConnexID(-1);
|
// vertex->setConnexID(-1);
|
||||||
// vertex->setDistance((float)(HUGE));
|
// vertex->setDistance((float)(HUGE_VAL));
|
||||||
// vertex->setPredecessor(NULL);
|
// vertex->setPredecessor(NULL);
|
||||||
// assert ( vertex->getVTuple() == NULL );
|
// assert ( vertex->getVTuple() == NULL );
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
#include <cmath>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
//#include "crlcore/CEditor.h"
|
|
||||||
#include "hurricane/Technology.h"
|
#include "hurricane/Technology.h"
|
||||||
#include "hurricane/DataBase.h"
|
#include "hurricane/DataBase.h"
|
||||||
#include "knik/Vertex.h"
|
#include "knik/Vertex.h"
|
||||||
|
@ -101,7 +101,7 @@ Vertex::Vertex ( Graph* routingGraph, Point position, DbU::Unit halfWidth, DbU::
|
||||||
, _contact (NULL)
|
, _contact (NULL)
|
||||||
, _position (position)
|
, _position (position)
|
||||||
, _vtuple (NULL)
|
, _vtuple (NULL)
|
||||||
, _distance ((float)(HUGE))
|
, _distance ((float)(HUGE_VAL))
|
||||||
, _connexID (-1)
|
, _connexID (-1)
|
||||||
, _netStamp (0)
|
, _netStamp (0)
|
||||||
, _halfWidth (halfWidth)
|
, _halfWidth (halfWidth)
|
||||||
|
@ -459,8 +459,8 @@ Cell* Vertex::getCell() const
|
||||||
// {
|
// {
|
||||||
// DbU::Unit size = DbU::lambda(5);
|
// DbU::Unit size = DbU::lambda(5);
|
||||||
// view->FillCircle ( transformation.getPoint ( getPosition() ), size );
|
// view->FillCircle ( transformation.getPoint ( getPosition() ), size );
|
||||||
// //if ( _distance < (float)(HUGE) )
|
// //if ( _distance < (float)(HUGE_VAL) )
|
||||||
// if ( _netStamp == _routingGraph->getNetStamp() && _distance < (float)(HUGE) )
|
// if ( _netStamp == _routingGraph->getNetStamp() && _distance < (float)(HUGE_VAL) )
|
||||||
// view->DrawString ( getString(_distance), getXMax() - (_halfWidth), getYMax() - (_halfHeight/2) );
|
// view->DrawString ( getString(_distance), getXMax() - (_halfWidth), getYMax() - (_halfHeight/2) );
|
||||||
// if ( _connexID != -1 )
|
// if ( _connexID != -1 )
|
||||||
// view->DrawString ( getString(_connexID)+","+getString(_netStamp), getXMax() - (_halfWidth), getYMin() + (_halfHeight/2) );
|
// view->DrawString ( getString(_connexID)+","+getString(_netStamp), getXMax() - (_halfWidth), getYMin() + (_halfHeight/2) );
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(LEFDEF REQUIRED)
|
find_package(LEFDEF REQUIRED)
|
||||||
find_package(COLOQUINTE REQUIRED)
|
find_package(COLOQUINTE)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
find_package(CORIOLIS REQUIRED)
|
find_package(CORIOLIS REQUIRED)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue