FG/OSG currently offers to build the "fgfs" binary as one of three different versions:
a) Using glut b) Using SDL c) Using osgViewer As the whole thing is still in development, it makes sense for developers to have more than just one of the three, so that one can compare their behaviours. The current solution in CVS requires: 1. One FlightGear source tree (35MB) 2. One FlightGear build tree per "fgfs" version (ca. 200MB each) I.e. run "configure && make && make install" thrice. 3. One statically linked "fgfs" installed binary per version in its own ${prefix} (more than 55MB each) ${prefix_glut}/bin/fgfs ${prefix_SDL}/bin/fgfs ${prefix_osgViewer}/bin/fgfs Total is about 800MB for the CVS solution. That looked a little much to me, so I changed the FG build system to optionally create all three binaries from one build tree. That changed things to about 1. One FG source tree (35MB) 2. One FG build tree with three binaries (300MB) Run "configure && make && make install" once. 3. Three statically linked binaries installed: (150MB) ${prefix}/bin/fgfs-{glut,SDL,osgViewer} ${prefix}/bin/fgfs -> symlink to fgfs-foo Total: About 500MB for the statically linked solution. That still looked a little much to me a little much, so I switched to dynamic linking using libtool. 1. One FG source tree (35MB) 2. One FG build tree (200MB) Run "configure && make && make install" once. 3. Three dynamically linked fgfs binaries installed (10MB each) ${prefix}/bin/fgfs-{glut,SDL,osgViewer} ${prefix}/bin/fgfs -> symlink to fgfs-foo 4. A number of dynamically linked FG internal libraries (55MB total) ${prefix}/lib/FlightGear-0.9.10/li*.so Total: About 320MB for the dynamically linked solution, i.e. much less than half the original size. I can see that introducing libtool will cause problems for many ancient systems, so I won't dare propose the dynamically linked solution for committing to CVS. However, the statically linked solution might be interesting. Things to figure out about it are: 1. What should the command line interface for configure look like? In CVS: ./configure build glut version ./configure --enable-sdl build SDL version ./configure --enable-osgviewer build osgViewer version 2. Should one keep the option of building the same fgfs binary we are building today, or make a symlink to one of the built fgfs-foo binaries the default? 3. Will creating a symlink "fgfs" to one of the three "fgfs-glut", "fgfs-SDL" and "fgfs-osgViewer" be problematic, e.g. on systems which do not support symlinks? I can do the proper patch when I know what has a chance to be committed. Comments? ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel