Alo Sarv
lead developer

Donate via
MoneyBookers

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary
irc.hydranode.com/#hydranode

Wednesday, May 04, 2005

More build/install system upgrades

OSX lacks lseek64 and O_LARGEFILE define, which broke builds on darwin; this should be fixed now.

Furthermore, libtool lacks proper support for bundles (as noted before). Even further, it simply eats up -bundle arguments passed through it, so I dropped it completely from build system. 40% speedup in configure run and like 5% or so speedup in overall compile time - who needs libtool anyway? :)

make install should work properly now too. Default install prefix is /opt/hydranode, binarie(s) are installed to /opt/hydranode/bin, plugins to /opt/hydranode/lib and headers to /opt/hydranode/include.

I'm currently considering whether to prefix plugins with mod_ instead of lib, and whether to link hydranode itself into one (or two) dynamiclibs instead. The rationale is that additional software could be written (and some already has been written) which uses hydranode libraries, so it would be convenient to have the libraries available. Notably, hnbase.so (providing xplatform API) and hncore.so (the rest of the p2p-related stuff). This would make writing external apps very easy, especially for developers which are already familar with hydranode APIs. Furthermore - want to do something ed2k-protocol-related? Link against libed2k.so, use include/hn/ed2k/ headers, and there you go - full ed2k protocol at your fingertips :)

Only issue with this approach is that it would require users to add /opt/hydranode/lib to their LD_LIBRARY_PATH, which is bit bad. On second thought, only libhydrabase.so and libhydranode.so need to be in LD_LIBRARY_PATH, so those could be symlinked to /usr/lib perhaps?

Madcat, ZzZz



Comments:
Hint:

AutoConf has a special AC_PREFIX_DEFAULT macros. I think You should apply this patch.


--- configure.ac (revision 1255)
+++ configure.ac (working copy)
@@ -32,7 +32,7 @@
[AC_MSG_FAILURE([hydranode requires g++ 3.2 or newer])])

trace_dflt="yes"
-prefix=/opt/hydranode # Override default prefix
+AC_PREFIX_DEFAULT(/opt/hydranode)

AC_ARG_ENABLE(,,)
AC_ARG_ENABLE(, [Customization:],)
 
google say: http://www.visi.com/~barr/ldpath.html
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?