Hi all,

This email is an attempt at constructive criticism. I have just started 
to work with net-snmp, and have ran across several things having to do 
with the build system that I believe could be done better. Personally, I 
tend to use automake where applicable, and for me it provides a 
convenient way of resolving most of the following issues with very 
little work on my part (the rest are issues that should have been 
handled by autoconf, and I'm not sure why they were not).

Of course, not everyone are a fan of automake, and I can perfectly 
understand if you choose not to. Still, I think it would be constructive 
to look at the issues themselves.

Semantic and minor problems:

    * Non standard compiler/linker etc. specification - usually
      performed by the command line environment, the configure help
      directs to using command line
    * Partly as a result of the above - the help strings take a huge
      area instead of using "AS_HELP_STRING"
    * Non-standard compiler choice when cross compiling. For most
      projects, merely having (in my case) "arm-unknown-linux-gnu-gcc"
      in my path while running configure with
      "--host=arm-unkown-linux-gnu" will cause configure to pick that as
      my compiler. This does not work with your build environment (I'm
      not even sure why - maybe it's just an old version of autoconf).

More functional issues:

    * Incorrect use of AC_C_BIGENDIAN. Instead of merely using it, and
      letting it figure out the endianity on its own (which it usually
      can), you only invoke it if we are not cross compiling. I'm trying
      to cross compile for arm. I have confirmed that AC_C_BIGENDIAN
      manages to figure out the endianity without any help from me, but
      your build script never gives it a chance, so when building
      net-snmp I need to manually specify the endianity for no good reason.
    * Incorrect DESTDIR behavior. While running "make install DESTDIR="
      does install the files to the right place, it runs "ldconfig" over
      the base path (i.e. - $prefix/lib rather than
      $DESTDIR/$prefix/lib), which causes problems if you are not root,
      and even more serious problems if you are.
    * Missing semi-standard targets. Automake generated makefiles have
      the "install-strip" target, which installs the files and strips
      them in one go. This is extremely convenient, especially when
      cross-compiling a non-standard strip is used (namely -
      arm-unkown-linux-gnu-strip, automatically determined by autoconf).
    * Incorrect concurrent build behavior. At the moment, net-snmp is
      the project in my environment which takes the longest to build. I
      would love to be able to do "make -j2" to speed things up, but
      doing so causes the build to fail. Apparently, it tries to build
      something that needs a library before that library is ready.
      Again, automake usually makes sure that these things are correctly
      handled.

These are the issues I found so far. I'd love to offer any help I can in 
resolving them (including sending patches), but I would like to first 
know that you also think these are problems and whether the suggested 
solution is an acceptable one to you.

Thanks,
Shachar

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to