Cadence products installation directory

O

okguy

Guest
I have installed Cadence in many directories :
the first for virtuoso
another for MMsim60
another for virtuoso
another for Neocell
another for SOC

They all inlcude the same directory structure and perl and java and ..
directories.
I wonder if and how I can merge them to have only 1 tools directories and
save a lot of disk space?!?
 
On Sat, 15 Oct 2005 01:26:54 -0400, "okguy" <okguy74@hotmail.com> wrote:

I have installed Cadence in many directories :
the first for virtuoso
another for MMsim60
another for virtuoso
another for Neocell
another for SOC

They all inlcude the same directory structure and perl and java and ..
directories.
I wonder if and how I can merge them to have only 1 tools directories and
save a lot of disk space?!?
Combining them is not supported. Each stream may have a different version of
some of these common infrastructure components, and is tested with that
particular version alone.

Sometimes we've gone a bit overboard with separating the various different
applications into different streams, but there are benefits in ensuring that new
technology does not have to progress at the rate of the slowest developing
(which is how things used to be 10 years ago with the old release model - e.g.
9502, 9504 etc).

Andrew.
 
How to setup the environnement so that cdsdoc look for each help directory
?
The problem is mainly for spectre.
 
In article <cb066ab7d16c902d554eba041afbfbf2
@localhost.talkaboutcad.com>, okguy74@hotmail.com says...
How to setup the environnement so that cdsdoc look for each help directory
?
The problem is mainly for spectre.


If you only want the manual for spectre, then it is no worth the effort
of setting up cdsdoc. Just go into the doc directory and look for the
spectreref.pdf file.

Is your CDS_INST_DIR environment variable correctly set? (Here we do a
lot of wrapping so none of the standard setup is like it is from
cadence)
--
Svenn
 
On Wed, 23 Nov 2005 08:13:46 +0100, Svenn Are Bjerkem <svenn.are@bjerkem.de>
wrote:

In article <cb066ab7d16c902d554eba041afbfbf2
@localhost.talkaboutcad.com>, okguy74@hotmail.com says...
How to setup the environnement so that cdsdoc look for each help directory
?
The problem is mainly for spectre.


If you only want the manual for spectre, then it is no worth the effort
of setting up cdsdoc. Just go into the doc directory and look for the
spectreref.pdf file.

Is your CDS_INST_DIR environment variable correctly set? (Here we do a
lot of wrapping so none of the standard setup is like it is from
cadence)
You don't need CDS_INST_DIR to be set these days (not for several releases) - in
fact I've not had it set in the 10 years I've been at Cadence - there were a few
tools that used to require this, but not for some time now.

I guess you're wanting to be able to run cdsdoc and reference the documentation
from multiple streams? Well, provided that the cdsdoc is run from the stream in
question, that gets added to a .ini file in your home directory - and it will
then allow you to look at the documentation from multiple streams.

One of my colleagues wrote a script some time ago to go around all the
installations we have here, and update the .ini file to include all the releases
- for easy access:

#!/usr/local/bin/perl
#
# Author Lawrence Davis
# Group Custom IC, Cadence UK
# Date Jun 25, 2001
#
# A PERL script to write a file called cdsdoc.ini in a users'
# ~/.cdsdoc directory. This directory is created if it does
# not exist.
#
# SCCS Info: @(#) cdsdocPopulate 07/02/01.15:07:41 1.2

require "ctime.pl";
use File::Basename;


################################################################
# #
# getReleasesInMap( map, filter) #
# Returns a list of keys in the requested 'map' except #
# those that match the pattern in the 'filter' argument #
# #
################################################################

sub getReleasesInMap {
my ($map, $filter) = @_;

my ($release, @releases);

open (RELEASES, "ypcat -k $map |") || die("Could not open map $map");
while (<RELEASES>) {
($release) = split(/\s+/,$_);
unless ($release =~ /$filter/ ) {
push(@releases, $release);
}
}
return(@releases);
}

################################################################
# #
# releaseHasCdsdoc( plat, releases) #
# Returns a list of releases that have a cdsdoc executable #
# in them; this will be a sublist of the 'releases' argument. #
# The 'plat' argument specifies the platform to look on. #
# #
################################################################

sub releaseHasCdsdoc {
my ($plat, @releases) = @_;

# return a list of releases that contain cdsdoc executable
my (@cdsdocrel) =
grep ( -x "/cds/$plat/$_/tools/bin/cdsdoc", @releases);

return(@cdsdocrel);
}


################################################################
# #
# writeCdsdocFile( file, plat) #
# Creates the named file for the requested platform. #
# The file will contain an entry for each release that #
# has a cdsdoc executable #
# #
################################################################

sub writeCdsdocFile {
my ($file, $plat) = @_;

my ($progname, $date, $num, @mapreleases, @cdsdocreleases, $fptr);
$progname = basename($0);
$date = ctime(time);

# first try to open the map for the requested platform
# filter out any keys in the map with a name containing 'kits'
@mapreleases = getReleasesInMap("auto.$plat", 'kits$');
@cdsdocreleases = releaseHasCdsdoc($plat, @mapreleases);
$fptr = openFile($file);
printf $fptr "#cdsdoc Initialization file\n#created by $progname\n#$date";
$num = $#cdsdocreleases;
foreach my $release (@cdsdocreleases) {
print $fptr "DocDir$num=/cds/$plat/$release\n";
$num--;
}
close($fptr);

print "Created $file for platform $plat\n";
}

################################################################
# #
# openFile(file) #
# Backs up the requested file with a .bak extension if it #
# already exists. If the directory to contain 'file' does #
# not exist, then it is created. Then the file is opened #
# for writing and returns the file handle #
# #
################################################################

sub openFile {
my ($file) = @_;

my ($fptr);
if ( -e $file ) {
system("mv $file $file.bak");
}
if ( ! -d dirname($file) ) {
mkdir( dirname($file), 0777 );
}
$fptr=fh0;
open($fptr, "> $file") || die("Could not open $file for writing");
return($fptr);
}

################################################################
# #
# getPlat() #
# Returns the platform of the current OS being used. #
# The only values returned are either "sun4v" or "hppa" #
# #
################################################################

sub getPlat {

my($os,$a);

open(OS, "uname -r |");
while (<OS>) {
($a) = split(/\./);
}
$_ = $a;
SWITCH: {
$os = sun4v, last SWITCH if /^5/;
$os = hppa, last SWITCH if /^B/;
$os = sun4v;
}
return($os);
}


writeCdsdocFile("$ENV{HOME}/.cdsdoc/cdsdoc.ini", getPlat());




Now, this script has some dependencies on how we have our installations done
here - they're all in automount maps called (say) auto.sun4v or auto.hppa, or
auto.lnx86 - and they are mounted as /cds/sun4v/<installationName> - but the
above should give some hints as to how you might go about doing this.

Regards,

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top