[vtkusers] Improvements for VTK makefiles.

Prabhu Ramachandran prabhu at aero.iitm.ernet.in
Thu Dec 7 10:49:33 EST 2000


I sent the foll. message a twice (once on Sunday and once yesterday)
but it appears that it hasnt made it.  I am really sorry if you end up
getting three copies. :(

Hi,

As I had written a while back, I had desired to improve some of the
VTK makefiles in order to ease packaging/installing VTK.  I did some
work on this.  I dont have CVS access and David Gobbi was kind enough
to accept, test and commit my first set of patches.  I have a few more
and David might not have the time to look at them.  So if someone
would like to help, let me know and I will mail you a tarball of the
changed files so that you can take a look and commit the necessary
stuff to VTK.  Here are some of things I have added that David has
checked and has possibly already committed.

    (1) The Python libraries were extremely large because they had the
    C++ library code compiled into them as well.  This resulted in ~13
    MB of bloat in the libraries!  David suggested that I try linking
    the libraries to the required VTK C++ libraries instead of
    compiling the C++ library code into it.  I tried it and it worked.

    (2) He also urged me to add rules to build static libraries for
    the Python bindings.  I added fixes to the Makefiles and configure
    and tested it.  It seems to work well.  David also tested them and
    has agreed to commit them when he can.  Thanks, David.

So the Python libraries should be smaller and static Python libraries
should also work fine.  

Here are some additions that are related to packaging.  I have tested
these under linux and they work fine.  I dont know about other Unices.

   (1) I have added new rules for 'make doc', 'make install_doc', 'make
   install_headers' and 'make install_examples' to
   <vtk_src_root>/Makefile.in.  The rules are not very sophisticated
   and are relatively simple.  All the new additions will affect only
   make install and make clean (which additionally removes the
   generated documentation).  'make all' should not do anything new.

   (2) Added some new variables to user.make to ease choice of install
   dirs for different things - the names are self explanatory like
   HEADER_INSTALL_DIR, EXAMPLE_INSTALL_DIR etc.

   (3) Changed the python 'make install' rule a bit to make use of the
   modified user.make.

   (4) Fixed Java jar file creation/installation.  Basically, I do
   this

   vtk: libvtkJava$(SHLIB_SUFFIX)
        # Make a jar file
        cd ${JAVA_CLASS_HOME}; ${JAR} -fc vtk.jar vtk/*.class
   
   which works.  I also set JAVA_CLASS_HOME = ${VTK_OBJ}/java in
   user.make.  I modified the install rule similarly to install the
   right jar file.  I dont know if this is optimal - but it sure works
   under linux with jdk1.1.8v1-3.

   (5) Changed a few things in the doxyfile to suit "normal" users
   (set extract_all = NO) and to get it to work with the 'make doc'
   and 'make install_doc' rules.

Doing this simplifies the generation of rpms and debs somewhat.  If
someone with CVS access has the time to look at this and commit it I
will be happy to mail you a tarball of the changes.  Hopefully I will
also update the spec file for the rpm next weekend.

thanks,
prabhu




More information about the vtkusers mailing list