README.build.win32.txt
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:13k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. ***************************************************************************
  2. *
  3. * README.build.win32
  4. *
  5. * Authors: Alex Burger <alex_b@users.sourceforge.net>
  6. *          
  7. *
  8. ***************************************************************************
  9. Introduction
  10. ============
  11. This README outlines the steps required to create a binary release for
  12. Windows using Microsoft Visual Studio and the NullSoft installer.
  13. There are four sections:
  14.   Compiling binaries
  15.   Compiling HTMLHelp file
  16.   Combining the binaries and HTMLHelp files
  17.   Bulding a NullSoft installer package
  18.   Bulding an OpenSSL version
  19. Compiling binaries
  20. ==================
  21. Requirements
  22. ------------
  23.  -Windows NT/2000/XP
  24.  -MSVC++ 6.0 SP5
  25.  -ActivePerl 5.8.2 build 808
  26.  -gnu_regex.exe (0.12) - http://people.delphiforums.com/gjc/gnu_regex.html
  27.  -Platform SDK
  28.  -MSYS / MinGW -or- tar.exe and gzip.exe
  29. Building the main binaries
  30. --------------------------
  31. Note:  All shell steps are using the Window CMD prompt unless otherwise stated.
  32. 1.  Extract source.  The location will be references as (source dir)
  33. 2.  Delete c:usr if it exists and rename Net-SNMP.dll in your %windir% if you 
  34.     have it already (to ensure Perl tests are using the compiled DLL)
  35. 3.  Apply any required patches
  36. 4.  Remove the example MIB files:  
  37.     Edit win32net-snmpagentmib_module_config.h and change the following lines:
  38.       #define USING_EXAMPLES_UCDDEMOPUBLIC_MODULE 1
  39.       #define USING_EXAMPLES_EXAMPLE_MODULE 1
  40.     to:
  41.       #undef USING_EXAMPLES_UCDDEMOPUBLIC_MODULE
  42.       #undef USING_EXAMPLES_EXAMPLE_MODULE
  43. 5.  cd (source dir)win32
  44. 6.  Run build.bat
  45. 7.  Set to the following:
  46.     Net-SNMP build and install options
  47.     ==================================
  48.     
  49.     1. OpenSSL support:       disabled
  50.     2. Platform SDK support:  enabled
  51.     
  52.     3. Install path:          c:/usr
  53.     4. Install after build:   enabled
  54.     
  55.     5. Perl modules:          enabled
  56.     6. Install perl modules:  disabled
  57.     
  58.     7. Quiet build (logged):  enabled
  59.     8. Debug mode:            disabled
  60.     9. IPv6 transports:       disabled
  61.     10. Install development files    enabled
  62.     
  63.     F.  Finished - start build
  64.     Q.  Quit - abort build
  65.     
  66.     Select option to set / toggle:
  67. 8.  F to start the build and verify everything was built ok
  68. 9.  Delete any generated config files from c:usrsnmppersist
  69. Creating the Perl package
  70. -------------------------
  71. 1.  cd (source dir)
  72.     cd perl
  73. 2.  nmake ppd
  74. 3.  Open an MSYS shell (unless you have tar.exe and gzip.exe)
  75. 4.  cd (source dir)
  76.     cd perl
  77. 5.  tar cvf NetSNMP.tar blib; gzip --best NetSNMP.tar
  78. 6.  Open a Windows command prompt (CMD) and cd (source dir)perl
  79. 7.  ren Bundle-NetSNMP.ppd NetSNMP.ppd
  80. 8.  Modify NetSNMP.ppd to look like the following.  Change the 
  81.     VERSION="x,x,x,x" line to the correct values.  Do NOT change 
  82.     * lines in the original file.
  83. <SOFTPKG NAME="NetSNMP" VERSION="5,2,0,0">
  84.     <TITLE>Net-SNMP</TITLE>
  85.     <ABSTRACT>Object Oriented Interface to Net-SNMP</ABSTRACT>
  86.     <AUTHOR></AUTHOR>
  87.     <IMPLEMENTATION>
  88. *        <OS NAME="MSWin32" />
  89. *        <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
  90.         <CODEBASE HREF="x86/NetSNMP.tar.gz" />
  91.     </IMPLEMENTATION>
  92. </SOFTPKG>
  93. 9.  Create base directories:
  94.     md "c:usrdocs"
  95.     md "c:usrperl"
  96.     md "c:usrperlx86"
  97.     md "c:usrtemp"
  98. 10. Copy files:
  99.     cd (source dir)
  100.     copy COPYING "c:usrdocs"
  101.     copy win32distREADME.txt "c:usr"
  102.     copy win32distscriptsnet-snmp-perl-test.pl "c:usrbin"
  103.     copy perlNetSNMP.ppd "c:usrPerl"
  104.     copy perlNetSNMP.tar.gz "c:usrPerlx86"
  105. 11. Update the BUILD INFORMATION section of c:usrREADME.txt
  106. Compiling HTMLHelp file
  107. =======================
  108. This section outlines the steps required to build a Windows HTML Help file
  109. based on the Net-SNMP man pages, README files, Perldoc documentation etc.
  110. Requirements
  111. ------------
  112.  -Linux (or similar) with:
  113.    -man (man page viewer)
  114.    -tidy (HTML tidy - http://tidy.sourceforge.net)
  115.    -Perl
  116.    -perldoc
  117.    -man2html3.0.1.tar.gz (http://search.cpan.org/~ehood/man2html3.0.1/)
  118.     Note:  Most Linux distributions come with man2html as part of the man rpm
  119.            package which is not the same as man2html from man2html3.0.1.tar.gz.
  120.            All that is needed from man2html3.0.1.tar.gz is the man2html script.  
  121.            You do not need to do a complete install (make/make install) but you
  122.            do need to make sure the script is configured correctly by setting the
  123.            man command line switches etc for the OS from inside of the script.
  124.  -Windows with:
  125.    -HTML Help Workshop (Search msdn.microsoft.com for 'html help workshop download')
  126. Convert documents to html
  127. -------------------------
  128. Note:  The following steps are completed using Linux.
  129. Note:  A temporary location of /tmp/net-snmp is used.
  130. 1.  Extract Net-SNMP source and cd (source dir)
  131. 2.  cd (source dir)
  132. 3.  cp perl/SNMP/README README.perl
  133. 4.  Remove older copies of converted files:
  134.     rm -R -f /tmp/net-snmp
  135. 5.  Build Net-SNMP man pages: 
  136.     ./configure --prefix=c:/usr; make sedscript; cd man;make; cd ..
  137. 6.  Install only the man files to /temp/net-snmp:
  138.     cd man; make install prefix=/tmp/net-snmp; cd ..
  139. 7.  Go to the scripts folder and make sure all the scripts are executable:
  140.     cd (source dir)
  141.     cd win32/dist/scripts; chmod +x *
  142. 8.  Edit these files and make sure the paths are correct in the OPTIONS 
  143.     section.  Also ensure the list of README files and Perl modules 
  144.     are correct in readme2html and poddir2html.
  145.     mandir2html
  146.     readme2html
  147.     poddir2html
  148.     Note:  mandir2html will process ALL man pages in c:tempnet-snmp while
  149.            readme2html and poddir2html will only process files listed in the
  150.            script.  If new man pages are added or removed, the Table of 
  151.            Contents (toc.hhc) and project file (Net-SNMP.hhp) need to be 
  152.            updated by hand.
  153. 9.  Run each script to generate the .html files:
  154.     ./mandir2html; ./readme2html; ./poddir2html
  155.     Note:  There will be many warnings from tidy which can be ignored.
  156. 10. Verify each converted file to ensure all the links are correct.  The files
  157.     are located in /tmp/net-snmp/html by default.  In some instances, URLs may be 
  158.     split across two lines such as the Variables link at the bottom of 
  159.     /tmp/net-snmp/html/man8-snmptrapd.8.html.
  160. 11. If new man pages are added or removed, the Table of Contents (Net-SNMP.hhc) and
  161.     project file (Net-SNMP.hhp) need to be updated by hand.
  162. 12. Convert EXAMPLE.conf.win32 to html:
  163.     ./txt2html ../../EXAMPLE.conf.win32 | tidy > /tmp/net-snmp/html/EXAMPLE.conf.win32.html
  164.     
  165. Build Net-SNMP.chm
  166. ------------------
  167. Note:  The following steps are completed using Windows.
  168. Note:  A temporary location of c:tempnet-snmp is used.
  169. 1.  Transfer /tmp/net-snmp/html from Linux to c:tempnet-snmphtml
  170. 2.  Copy the following files to c:tempnet-snmphtml:
  171.     cd (source dir)
  172.     copy "win32disthtmlhelpConfiguration_Overview.html" c:tempnet-snmphtml
  173.     copy "win32disthtmlhelpDeveloper_FAQ.html" c:tempnet-snmphtml
  174.     copy "win32disthtmlhelpFAQ.html" c:tempnet-snmphtml
  175.     copy "win32disthtmlhelpHelp_Caveats.html" c:tempnet-snmphtml
  176.     copy "win32disthtmlhelpIntroduction.html" c:tempnet-snmphtml
  177.     copy "win32disthtmlhelpNet-SNMP.hhc" c:tempnet-snmphtml
  178.     copy "win32disthtmlhelpNet-SNMP.hhp" c:tempnet-snmphtml
  179.     copy "win32disthtmlhelpnet-snmp-4.2-800.jpg" c:tempnet-snmphtml
  180.     copy "win32disthtmlhelpsnmp.conf.win32.html" c:tempnet-snmphtml
  181.     copy "win32disthtmlhelpsnmpd.conf.win32.html" c:tempnet-snmphtml
  182.     copy "win32disthtmlhelpsnmptrapd.conf.win32.html" c:tempnet-snmphtml
  183. 3.  New configuration options may be available in the new release of
  184.     Net-SNMP, so the *.conf.win32.html files should be updated.
  185.     Create a text file with all the configuration options for snmpd and 
  186.     snmptrapd using:
  187.     cd win32binrelease (folder of *Windows* compiled Net-SNMP)
  188.     snmptrapd -H 2> c:tempnet-snmphtmlsnmptrapd.options
  189.     snmpd -H 2> c:tempnet-snmphtmlsnmpd.options
  190.     Update these files using an HTML editor (Mozilla etc):
  191.     c:tempnet-snmphtmlsnmp.conf.win32.html
  192.     c:tempnet-snmphtmlsnmpd.conf.win32.html
  193.     c:tempnet-snmphtmlsnmptrapd.conf.win32.html
  194.  
  195.     Only add the relevent section to each file from the .options files
  196.     created above, ensure the font is set to fixed width.
  197.     Tidy each file using tidy under Windows (or transfer to Linux and tidy
  198.     using Linux):
  199.     tidy -asxhtml -m c:tempnet-snmphtmlsnmptrapd.conf.win32.html
  200.     tidy -asxhtml -m c:tempnet-snmphtmlsnmpd.conf.win32.html
  201.     tidy -asxhtml -m c:tempnet-snmphtmlsnmp.conf.win32.html
  202. 4.  Edit c:tempnet-snmphtmlNet-SNMP.hhp and update the version for the 
  203.     'Title' variable.
  204. 5.  Run HTML Workshop
  205. 6.  Open c:tempnet-snmphtmlNet-SNMP.hhp
  206. 7.  Click File - Compile
  207. 8.  Select 'C:tempnet-snmphtmlNet-SNMP.hhp' as the filename
  208. 9.  Click Compile
  209. 10. You should now have a c:tempnet-snmphtmlNet-SNMP.chm file.
  210. 11. Launch the file and ensure every content item displays the correct page.
  211. Combining the binaries and HTMLHelp files
  212. =========================================
  213. 1.  Copy the HTML Help file to c:usrdocs:
  214.     copy c:tempNet-SNMPhtmlNet-SNMP.chm c:usrdocs
  215. 2.  Create a .zip file of c:usr for archive purposes.
  216. Bulding a NullSoft installer package
  217. ====================================
  218. Requirements
  219. ------------
  220.  -Windows
  221.  -Nullsoft Scriptable Install System 2.0 - http://nsis.sourceforge.net/home/
  222. 1.  Complete the three sections above:  'Compiling binaries', 'Compiling 
  223.     HTMLHelp file' and 'Combining the binaries and HTMLHelp files'.  Net-SNMP
  224.     should be located in c:usr.
  225. 2.  Copy the following files to c:usr:
  226.     cd (source dir)
  227.     copy win32distinstallerSetEnVar.nsi c:usr
  228.     copy win32distinstallernet-snmp.nsi c:usr
  229.     copy win32distinstallerAdd2Path.nsi c:usr
  230.     copy win32distinstallernet-snmp-header1.bmp c:usr
  231. 3.  Create the following empty files:
  232.     echo . > c:usrregisteragent.bat
  233.     echo . > c:usrunregisteragent.bat
  234.     echo . > c:usrregistertrapd.bat
  235.     echo . > c:usrunregistertrapd.bat
  236.     echo . > c:usretcsnmpsnmp.conf
  237. 4.  Edit the following variables in c:usrnet-snmp.nsi:
  238.     PRODUCT_MAJ_VERSION
  239.     PRODUCT_MIN_VERSION
  240.     PRODUCT_REVISION
  241.     PRODUCT_EXE_VERSION
  242.     For example, for 5.1.2:
  243.     PRODUCT_MAJ_VERSION "5"
  244.     PRODUCT_MIN_VERSION "1"
  245.     PRODUCT_REVISION "2"
  246.     PRODUCT_EXE_VERSION "1"
  247.     The generated filename would be: net-snmp-5.1.2-1.win32.exe
  248.     PRODUCT_EXE_VERSION is usually 1 unless the binary package is re-released
  249.     due to packaging issues.  For pre releases, include the pre-release version 
  250.     in PRODUCT_REVISION.   For example, for 5.1.2 pre2 use:
  251.     PRODUCT_MAJ_VERSION "5"
  252.     PRODUCT_MIN_VERSION "1"
  253.     PRODUCT_REVISION "2.pre2"
  254.     PRODUCT_EXE_VERSION "1"
  255.     This will ensure the version number is visible during installation.
  256.     The generated filename would be: net-snmp-5.1.2.pre2-1.win32.exe
  257. 5.  Launch the 'Nullsoft Install System (NSIS 2.0)'
  258. 6.  Select 'MakeNSISW (compiler interface)'
  259. 7.  Click File - Load Script
  260. 8.  Select c:usrnet-snmp.nsi
  261. 9.  You should now have a c:usrNet-SNMP-x.x.x-x.exe binary installer 
  262.     package
  263. 10. Test the package
  264. 11. Compare the directory contents of the compiled folder with the installed
  265.     folder to ensure there are no missing MIB files etc.  Modify net-snmp.nsi
  266.     and rebuild if required.
  267. Bulding an OpenSSL version
  268. ==========================
  269. Requirements
  270. ------------
  271.  -OpenSSL binary from http://www.slproweb.com/products/Win32OpenSSL.html
  272. 1.  Install the OpenSSL binary, header and library files as explained in 
  273.     'Using a pre-compiled version' of the 'Microsoft Visual C++ - Building with 
  274.     OpenSSL' section of README.win32.
  275. 2.  Move c:usr c:usr.temp
  276. 3.  Re-build the binary exactly as above except enable OpenSSL.
  277. 4.  Copy contents of c:usr to c:usr.temp
  278. 5.  Delete c:usr
  279. 6.  Move c:usr.temp c:usr
  280. 7.  Update the BUILD INFORMATION section of c:usrREADME.txt to include the SSL 
  281.     info and the filename.
  282. 8.  Update the version stamp in c:usrnet-snmp.nsi to include -ssl.  Example:
  283.     For example, for 5.3.0:
  284.     PRODUCT_MAJ_VERSION "5"
  285.     PRODUCT_MIN_VERSION "3"
  286.     PRODUCT_REVISION "0-ssl"
  287.     PRODUCT_EXE_VERSION "1"
  288.     The generated filename would be: net-snmp-5.3.0-ssl-1.win32.exe
  289. 9.  In c:usrnet-snmp.nsi, change:
  290.     !define OPENSSL_REQUIRED "0"
  291.     to
  292.     !define OPENSSL_REQUIRED "1"
  293. 10. Launch the 'Nullsoft Install System (NSIS 2.0)'
  294. 11. Select 'MakeNSISW (compiler interface)'
  295. 12. Click File - Load Script
  296. 13. Select c:usrnet-snmp.nsi
  297. 14. You should now have a c:usrNet-SNMP-x.x.x-x.exe binary installer 
  298.     package
  299. 15. Test the package
  300. 16. Compare the directory contents of the compiled folder with the installed
  301.     folder to ensure there are no missing MIB files etc.  Modify net-snmp.nsi
  302.     and rebuild if required.