README.osX
$Id: README.osX 16992 2008-06-03 09:37:46Z dts12 $

This is what I had to do to get it to work for me. Your mileage may vary.
If this doesn't work for you, or you have fixes for any problems listed,
please post to <net-snmp-coders@lists.sourceforge.net>. Thanks!

  - ALL

    - Test 44 (Perl AgentX Subagent) fails.

       - configure with --enable-as-needed for proper libperl linking

    - nlist doesn't support icmpstat

       - disable the icmp module during configure by specifying
         "--with-out-mib-modules=mibII/icmp", or at startup by adding
         "-I -icmp" to the snmpd command line.


  - 10.4.7 (Universal) and Leopard with 5.4 sources:
        [Supplied by Chris Jalbert, slightly updated]

       - build using gcc 4.0 (see below) and configure using:
                        --with-persistent-directory=/var/db/net-snmp \
                        --with-defaults \
                        --without-rpm \
                        --with-mib-modules="host ucd-snmp/diskio" \
                        --with-out-mib-modules="mibII/icmp host/hr_swrun" \
                        --enable-as-needed \
                        --without-kmem-usage

       The first line sets up persistent storage in the OS X standard location.

       The third line is necessary because RPM is not properly disabled.

       The fourth line includes those modules appear to build properly and
       mostly work. The next line is necessary because those sub-modules
       do not build.

       The final line is necessary because /dev/kmem was removed in
       the Intel / Universal builds of the OS, and I believe the APIs will
       be removed in Leopard.
         This line is the most critical for proper building on OS X.


  - 10.3.x and earlier

     - Some older versions of Apple's cpp doesn't like configure. 

        - run 'gcc_select' to see what version you are using, and
          'gcc_select -l' to list available versions. I've had success with
          3.3, selected by running (as root) 'gcc_select 3.3'. (Note: this was
          on Panther, 10.3.2)

     - Some older versions of net-snmp as installed by Apple contains
       bad flags in net-snmp-config.

       - build your own version, and install over Apple's version. The
         configure flags you need for the same configuration:

         configure --prefix=/usr --mandir=/usr/share/man
                   --infodir=/usr/share/info --with-libwrap --with-defaults
                   --prefix=/usr --with-persistent-directory=/var/db/ucd-snmp
                   --with-mib-modules=host

-------------------------------------

With Mac OS X 10.5.2, and Net-SNMP 5.4.2, the default configuration
seems to build and run successfully.   The main tweak needed to get
things working was to disable "embedded perl" (which is active by
default in 5.4 and above).

  The issue here is that enabling embedded perl will try to use the
same CFLAGS used for compiling perl, when compiling the Net-SNMP code
(which is probably reasonable).  Unfortunately, the default perl binary
that comes with Mac OS/X 10.5 (at least) is a "universal binary",
so the CFLAGS that it uses include "-arch i386 -arch ppc".  This
dual-architecture option confuses the configure script, and means
that it cannot detect the characteristics of the host system correctly.

Dave
June 2008
