Wednesday, May 18, 2011

Compiling OpenSees on Ubuntu 10.04 LTS

So, I developed some major issues with my Vista x64 image. Ordered a Win 7 DVD plus a solid state drive and will rebuild it this weekend.

In the meantime, I decided to play with my backup Ubuntu Wubi image. Its Ubunutu 10.04.

There is an alternative motive here, as I might develop an OpenSeesVM that I can bundle and deploy as a tool for others.

Here are the rough steps I followed.

Note: This installs the OpenSees executable at /home/user/bin. This is clearly not the best place, but I'll change it later. At least it works!




Install some tools:


sudo apt-get install build-essential
sudo apt-get install tcl8.3 tcl8.3-dev
sudo apt-get install vim
sudo apt-get install gfortran
sudo apt-get install tcl8.4-dev
sudo apt-get install libpng12-dev
sudo apt-get install tcl8.5-dev
sudo apt-get install tk-dev
sudo apt-get install libglpng
sudo apt-get install freeglut3-dev


Yes, some of this is overkill but all of this had to be installed before it would compile and link.




Download the stable release OpenSees2.2.2.tar.gz from the OpenSees website.

Unzip it and move it to some location under your home dir:


gunzip OpenSees2.2.2.tar.gz
ls
tar -xvf OpenSees2.2.2.tar
ls
mv OpenSees ~/OpenSees
cd /home/henderso/OpenSees/
ls
cat README





Download my Makefile.def. I posted my Makefile for Ubuntu 10.04 here.

Extract the file so that Makefile.def is in the /home/user/OpenSees dir

Change the permissions on it:


chmod 775 Makefile.def


Note: I made the following major changes to the file (with the help of plenty of others):

- Add the AMD directory (Read more here)

- Fixed up the general home and build paths





You need to create a lib and bin directory in the home folder specified in Makefile.def. In my example, this is the user home. If these directories don't exist, the linker will spaz when you run Make.


mkdir ~/bin
mkdir ~/lib





Now run the build using make:


cd ~/OpenSees (or where ever you put it)
make


There are a few bugs that might arise in some source files (tkMain.cpp). If this happens, edit the files and comment out the offending lines.

Here's a list:


  • Comment out Line 112 in SRC/tcl/tkMain.cpp

3 comments:

  1. Thx for sharing your experience.
    I also add to change the SUPERLU link from 3.0 to 4.1 in Makefile.def.

    Thomas

    ReplyDelete
  2. Thank you Soooooooooo much. It works!

    ReplyDelete