[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