| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Compiling without DYNLIBS and/or on cygwin |
Hallo All! After some months in which I was heavily distracted from fidonet, I today was called back by an e-mail stating that the hard disk of my fido node has run full ;-). After fixing this, I decided to again set up a fido point on my notebook, and so I tried to compile current husky from CVS under cygwin with gcc and huskymak.cfg today. That failed, however. If I set DYNLIBS=1, huskylib.dll builds fine, but when smapi.dll is going to be built (gcc -shared ... -o smapi.dll.version ...), I get errors about unreferenced symbols (these are the symbols that are in huskylib.dll). I think this is an error in cygwin, not in husky. But if I set DYNLIBS=0, there are definitely bugs in Husky that make the build process fail. At first, it builds LIBHUSKYCYG.LIB, which really should be LIBHUSKY.A (or maybe LIBHUSKY.LIB, but not LIBHUSKYCYG.LIB!), then it builds LIBSMAPICYG.LIB, but when building fidoconfig, the build process fails for tparser, because it tries to link smapi as "../huskylib/libhusky.a", and even if I skip tparser, I then can't build hpt because hpt (CORRECTLY!) tries to link the libraries with "-L/usr/local/lib -lhusky -l smapi" and of course does not find anything because the libs have the "cyg" suffix in their name. I remember that already more than two years ago we agreed on the following: 1. Library names like "libsmapiXXX.a/lib", where XXX is "cyg", "emx", "bcc", "unx" or anything, are for use by the LEGACY MAKEFILES (that don't use huskymak.cfg) only. I used them for building static binaries of msged and cfroute, and I suppose noone else ever needs this, so we could just drop it. 2. Static libraries should be named "libsmapi.a" or "libsmapi.lib" and so on, WITHOUT a operating system specific subject, and should be installed to /usr/local/lib ( or whereever LIBDIR) points to. And likewise: 3. The technique of linking a library by using relative paths in the build directory (../husky/libhusky.a) is again ONLY for use by the LEGACY makefiles, because the LEGACY makefiles (only) don't have an install target that could install the library to a place where they can be found with "-l* Origin: 24/7 Binkd connectivity at: (2:2476/418) SEEN-BY: 633/267 270 @PATH: 2476/418 140/1 106/2000 633/267 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.