Re: missing info in the models tarballs.
al davis <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <[email protected]> |
On Saturday 24 February 2007 14:09, al davis wrote: > On Saturday 24 February 2007 03:43, David Fang wrote: > > I strongly recommend > > GNU libtool -- it works like magic; > > Go for it. I have not used it. I agree that it is needed. > What you see now is a temporary hack to get something out. I decided to try it .. That is play with it to compile a plugin. It consists of a couple of shell scripts, and some other files which are essentially a database of all of the things that need configuring. It has a reasonably good interface, only slightly more complicated than just compiling on a single known system. 1. Compile: libtool --mode=compile g++ -c c_list.cc 2. Link: libtool --mode=link g++ c_list.lo -o libc_list.la -rpath /tmp Now the .so file is hiding in the directory ".libs". Contrast, without it, but only on a system I know: (1 step version) g++ -fPIC -DPIC -shared -o c_list.so c_list.cc or (2 step version): g++ -fPIC -DPIC -c c_list.cc g++ -shared -o c_list.so c_list.o Libtool really does this: g++ -c c_list.cc -fPIC -DPIC -o .libs/c_list.o g++ -shared .libs/c_list.o -lstdc++ -lm -lc -lgcc_s -Wl,-soname -Wl,libc_list.so.0 -o .libs/libc_list.so.0.0.0 .. and some other stuff that is almost harmless but not necessary. .... essentially the same, but with a few "-l" to load some libraries. These are not necessary, but harmless. I say "almost" harmless because it does take some space. So far, looks good. Looking deeper ..... There are some problems: 1. It definitely DOES create a run-time dependency. If we use it in this manner, you will need libtool installed to fully run gnucap. Some relief ... such dependency is only there if you want to use source plugins. 2. The libtool tarball is about 3 MB. about 3 times the size of the gnucap basic tarball. (core + enough plugins to be useful) It contains lots of stuff for lots of systems. What would be nice is a "libtool-light" that does just the two features needed here, and has the database organized in such a way that it is easy to select and install only the one needed. The best design of a "libtool-light" is probably 20 or so "Make2" files.,or actually not the whole thing, just a few defines. Only one would need to be installed, one small file.