This pull request aims at adding autotools for build checks, configure flags for compile time configuration and handling of #define directives inside code and things that will possibily make it better for bitcoin to be packaged inside distributions, as well ported to different architectures.
Build of this branch was tested on Debian 6 (also with WX GUI), Apple OSX 10.5 (no WX GUI) and CYGWIN win32 (no UPNP nor WX)
completed
add autotools build system
commit ref: jaromil@500da9eb20d480c431d610472bfa3af92112aead
this pull request follows as third attempt to previous 2:
and basically consists of a rebase of this branch https://github.com/jaromil/bitcoin/commits/master eliminating all those commits and squashing them in 2 steps.
1st commit moves files around under old build system
2nd commit converts the build system to autotools (while we still leave the old build system in place, optional)
the bitcoind code itself was never modified: files were moved around and the header auto-config.h generated by autoconf was added to headers.h
code modules have been separated in subdirectories and compiled as static libraries, still using libtool, which is the recommended behaviour when using autotools.
interesting configure flags
- --enable-upnp=0/1 has been added and configure.ac contains templates for adding more compile time choices in future.
- --enable-gui has been added also to activate compilation of the included WX GUI. other wx related flags are provided to indicate prefix or static library build.
- --enable-debug compiles the binaries with debugging flags, giving all warnings - anyone willing to help should run it at least once :)
- --enable-profiling enables support for gprof the GNU profiler (will dump gmon.out files after run)
- --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH
- --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)
- --with-boost and more boost build configuration
code re-organization
commit ref: jaromil@84c3fb07b0b8199c7f85c5de280e7100bad0786f
directory re-organization (keeps the old build system)
there is no internal modification of any file in this commit
files are moved into directories according to established standards in sourcecode distribution; these directories contain:
- src - Files that are used in constructing the executable binaries
- doc - Files in HTML and text format that document usage, quirks of the implementation, and contributor checklists.
- locale - Files that contain human language translation of strings used in the program
- contrib - Files contributed from distributions or other third party implementing scripts and auxiliary programs