Difference between revisions of "Build System"
From Net-SNMP Wiki
					
										
					
					 (→Tool Versions)  | 
				 (→Tool Versions)  | 
				||
| Line 33: | Line 33: | ||
{|  | {|  | ||
| − | ! Versions !! Autoconf !! Libtool  | + | ! Versions !! Autoconf !! Automake !! Libtool  | 
|-  | |-  | ||
   | Trunk ''(5.7-to-be)''  |    | Trunk ''(5.7-to-be)''  | ||
   | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.bz2 2.68]  |    | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.bz2 2.68]  | ||
| − |    | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz     2.4]  | + |   | automake [ftp://ftp.gnu.org/gnu/automake/automake-1.11.tar.bz2 1.11]  | 
| + |    | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz     2.4 + patch (see below)]  | ||
|-  | |-  | ||
| − |    |   | + |    | 5.6  | 
   | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.63.tar.bz2 2.63]  |    | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.63.tar.bz2 2.63]  | ||
| + |   | automake [ftp://ftp.gnu.org/gnu/automake/automake-1.11.tar.bz2 1.11]  | ||
| + |   | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz  2.2.6a]  | ||
| + | |||
| + | |-  | ||
| + |   | 5.5  | ||
| + |   | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.63.tar.bz2 2.63]  | ||
| + |   | automake [ftp://ftp.gnu.org/gnu/automake/automake-1.10.1.tar.bz2 1.10.1]  | ||
   | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz  2.2.6a]  |    | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz  2.2.6a]  | ||
| Line 47: | Line 55: | ||
   | 5.4.2+  |    | 5.4.2+  | ||
   | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 2.59]  |    | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 2.59]  | ||
| + |   | automake [ftp://ftp.gnu.org/gnu/automake/automake-1.10.1.tar.bz2 1.10.1]  | ||
   | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.26.tar.gz  1.5.26]  |    | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.26.tar.gz  1.5.26]  | ||
| Line 52: | Line 61: | ||
   | 5.4/5.4.1  |    | 5.4/5.4.1  | ||
   | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 2.59]  |    | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 2.59]  | ||
| + |   | automake                                                       (which version ?)  | ||
   | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.24.tar.gz  1.5.24]  |    | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.24.tar.gz  1.5.24]  | ||
| Line 57: | Line 67: | ||
   | earlier  |    | earlier  | ||
   | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 2.59]  |    | autoconf [ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2 2.59]  | ||
| + |   | automake                                                       (which version ?)  | ||
   | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz  1.5.22]  |    | libtool  [ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz  1.5.22]  | ||
|}  | |}  | ||
Revision as of 06:50, 22 October 2010
For Users
Unix
./configure [options, see "configure --help" for a list] make make test su make install
The same procedure applies to builds with Cygwin on Windows.
See README.* for important notes for particular platforms.
Windows
There are several ways to build on Windows:
- MS Visual C++
 - MinGW / MSYS
 - Cygwin (see "Unix" above)
 
See Build_System/Windows for the status of compiling with the various Windows environments.
See Build_System/Windows_features for a comparison of the features implemented in each of the Windows build environments.
See README.win32 for further details.
For Coders
Tool Versions
| Versions | Autoconf | Automake | Libtool | 
|---|---|---|---|
| Trunk (5.7-to-be) | autoconf 2.68 | automake 1.11 | libtool 2.4 + patch (see below) | 
| 5.6 | autoconf 2.63 | automake 1.11 | libtool 2.2.6a | 
| 5.5 | autoconf 2.63 | automake 1.10.1 | libtool 2.2.6a | 
| 5.4.2+ | autoconf 2.59 | automake 1.10.1 | libtool 1.5.26 | 
| 5.4/5.4.1 | autoconf 2.59 | automake (which version ?) | libtool 1.5.24 | 
| earlier | autoconf 2.59 | automake (which version ?) | libtool 1.5.22 | 
Files
- configure: auto-generated by autoconf from configure.in and acinclude.m4 (branches) or configure.ac, configure.d/* and m4/* (trunk)
 - configure.in (5.4.x and earlier) or configure.ac and configure.d/* (trunk): major source file to implement configure magic. Run autoconf and autoheader after any change. New definitions may need to be copied to win32/net-snmp/net-snmp-config.h[.in].
 - acconfig.h: autoconf variable definitions, descriptions and default values. Deprecated (for new definitions) in favor of AC_DEFINE() in configure.in / configure.d/*. Run autoheader after any change. New definitions may need to be copied to win32/net-snmp/net-snmp-config.h[.in].
 - acinclude.m4 (branches) or m4/ac* and m4/netsnmp* (trunk): Net-SNMP specific autoconf macros. Run autoconf after any change.
 - include/net-snmp/net-snmp-config.h: auto-generated by autoheader from configure.in/configure.ac and acconfig.h
 - ltmain.sh: copied from libtool (created/updated by libtoolize --copy --force)
 - aclocal.m4: contains includes of all used files in m4/*(created/updated by aclocal)
 - config.guess, config.sub: platform detection shell script (created/updated by libtoolize --copy --force; from GNU config project)
 - win32/net-snmp/net-snmp-config.h.in: used by win32/Configure to create win32/net-snmp/net-snmp-config.h
 - win32/net-snmp/net-snmp-config.h: definitions for Win32 (non-Cygwin) builds
 - win32/lib*/lib*.def: public/exported symbols/functions from Net-SNMP libraries for Win32 builds. If you introduce new public functions, please also add them here!
 - Makefile.in (also in most sub-directories): source for Makefile (the latter being generated by configure by substituting autoconf definitions and concatenating with Makefile.top and Makefile.rules)
 - net-snmp-config.in: source for net-snmp-config (the latter being generated by configure)
 - sedscript.in: source for sedscript (the latter being generated by configure)
 
Updating
Assuming that you have changed any of the above and have the right tool versions installed - in order to update all the generated files you can do either
aclocal -I m4 libtoolize --copy autoconf autoheader
or
autoreconf -i
but in the later case you must make sure that the tool versions that autoreconf calls are the correct ones.