# Alliance VLSI CAD System
# Copyright (C) 1990, 2002 ASIM/LIP6/UPMC
#
# Home page          : http://asim.lip6.fr/recherche/alliance/
# E-mail             : mailto:alliance-users@asim.lip6.fr
# ftp site           : ftp://asim.lip6.fr/pub/alliance/
#
# NOTE: You can find the latest revision of this document at:
# http://asim.lip6.fr/pub/alliance/latest-checkout/alliance/src
#
# $Id: README,v 1.10 2004/09/13 18:14:52 ludo Exp $

This file discuss about installation of Alliance on UNIX machines.


# Downloading and installing binary distribution :
# ===================================================================

If you don't find the exact precompiled package for your system, or if you 
have trouble with a package, please consider downloading the sources 
and build them. 

Note that for running some precompiled Alliance binaries you will need gcc and
other gnu tools (gmake, gcc ...), X11R6.4 libraries (http://www.x.org/), Motif
1.2 libraries. You can find a semi free Motif distribution at 
http://www.motifzone.net/ and a free clone at http://www.lesstif.org/.
If you use Linux RedHat 7.1 you'll find 2 openmotif rpm in 
ftp://asim.lip6.fr/pub/alliance/distribution/5.0/redist/rh7.1/
If you use RedHat 7.3 or 8.0, install the 3 openmotif rpm found on the 
RedHat cdroms (especially the openmotif21 rpm which is a compatibility library
for Open Motif 2.1 that can be installed with the openmotif-2.2.


Alliance naming scheme:
=======================

- sources: alliance-XXX-YYY.tar.gz
    where:
        XXX = Alliance version number. eg 5.0
        YYY = Alliance release number, wich is the date of the build. eg 20020624

- binaries: alliance-XXX-YYY-ZZZ.KKK
    where:
        XXX, YYY = same as above.
        ZZZ = indicate the platform target
        KKK = archive type (gzipped tar or rpm)


To install a tar.gz package (*nix)
----------------------------------

Get the latest binary package for your platform, 
log as root then type :

> cd /
> tar -xzf /mnt/cdrom/alliance-5.0-XXX-YYY.tar.gz
> ln -s /opt/alliance-5.0/etc/alc_env.csh /etc/profile.d/
> ln -s /opt/alliance-5.0/etc/alc_env.sh /etc/profile.d/


To install a .rpm package (Linux redHat 7+)
-------------------------------------------

This rpm has been build on a modified RedHat 7.1 and requires: ld-linux.so.2
libICE.so.6 libSM.so.6 libX11.so.6 libXext.so.6 libXm.so.2 libXp.so.6
libXpm.so.4 libXt.so.6 libc.so.6 libm.so.6 libstdc++-libc6.2-2.so.3 /bin/sh
libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3)
libm.so.6(GLIBC_2.0). 

You can get the latest rpm package available on alliance site,
Rpm named *.rpm are build on a modified RedHat 7.2 we use at lip6.
Rpm named *-rh8.rpm are build on a up2date full install of RedHat 8o 

log as root then type :

> rpm -Uvh alliance-5.0-YYY.rpm

To build a .rpm package for your platform
-------------------------------------------

You can generate the rpm for your platform (czo is my login name) :

# change the default rpm path for non root build
 echo "%_topdir    /var/tmp/czo/rpm" > $HOME/.rpmmacros

# create these dirs...
 mkdir -p /var/tmp/czo/rpm ;\
 cd /var/tmp/czo/rpm ;\
 mkdir BUILD RPMS SOURCES SPECS SRPMS

 then cd where you have downloaded alliance and type

 1- if you are using rpm version < 4.1
 rpm -ta alliance-5.0-XXX.tar.gz 
 
 2- if you are using rpm version > 4.1
 rpmbuild -ta alliance-5.0-XXX.tar.gz 


# Building from the sources :
# ===================================================================

Alliance's sources are now conforming to GNU's automake/autoconf.

1/ Get the latest alliance-5.0-YYY.tar.gz archive.

2/ Unarchive it

> tar xzf alliance-5.0-XXX.tar.gz

3/ The install stage has to be done at the same time 
   as the make itself : the way the configure and Makefiles 
   are written implies that you do a "make install" in one 
   step rather than a "make" followed by a "make install"

   To avoid make problems, please use gnu make (gmake)
   The following commands builds the full package from scratch.

> export ALLIANCE_TOP=/opt/alliance
> ./configure --prefix=$ALLIANCE_TOP
> gmake install

All this is done by a script called ./build in the alliance directory.

# Building from the cvs tree :
# ===================================================================

This explains how to proceed from the Alliance CVS tree.

1/ Get the latest alliance release on the ASIM CVS server.
   To checkout the Alliance CVS tree, you have to first login
   onto the cvs server using the following command:
> cvs -d :pserver:anoncvs@asim.lip6.fr:/cvsroot login
   At the CVS password prompt answer:
> anoncvs
   This has to be done only once. Then to actually retrieve the latest
   version of the sources, issue the command:
> cvs -d :pserver:anoncvs@asim.lip6.fr:/cvsroot co alliance
   To update your files once on a while (usually when we have done minor
   bug corrections, that you can be aware of by reading the alliance-users
   mailing list once on a while), cd into your alliance top directory
   and type :
> cvs update -d -P

2/ Remove some directories from the Alliance tree. These directories
   contain tools that may be helpfull but are not maintained anymore,
   so they will likely not compile.
   Assuming Alliance sources reside in "~fred/alliance", do:
> cd src
> source .asim

3/ We recommand not to build the tool in the source directory.
   Also, the install stage has to be done at the same time 
   as the make itself : the way the configure and Makefiles 
   are written implies that you do a "make install" in one 
   step rather than a "make" followed by a "make install"

   To avoid make problems, please use gnu make (gmake)

   Assuming user "fred" did the cvs checkout in "~fred/alliance", the
   following commands builds the full package from scratch in the
   '/opt/alliance/objects' and installs it in '/opt/alliance'.
> su root
> mkdir /opt/alliance
> chown fred /opt/alliance
> logout
> cd /opt/alliance
> mkdir objects
> cd objects
> export ALLIANCE_TOP=/opt/alliance
> ~fred/alliance/src/configure --prefix=$ALLIANCE_TOP
> gmake install

# Usage :
# ===================================================================

Each user has to source alc_env.[c]sh to set Alliance environment
variables to be able to run the Alliance tools.

in sh  > . [where you have installed Alliance]/alliance/etc/alc_env.sh

in csh > source [where you have installed Alliance]/alliance/etc/alc_env.csh

This sets various default environment variables which could be changed by user
later (Like MBK_OUT_LO to set the netlist output file format).

If you are a SysAdmin, you should consider linking these scripts in 
the system's profile (e.g.: /etc/profile.d/ on Linux) so that configuration
would be done at user login.


# EOF

