Apache CouchDB DEVELOPERS ========================= Only follow these instructions if you are building from a source checkout. If you're unsure what this means, ignore this document. Dependencies ------------ You will need the following installed: * GNU Libtool (http://www.gnu.org/software/libtool/) * GNU Automake (>=1.6.3) (http://www.gnu.org/software/automake/) * GNU Autoconf (>=2.68) (http://www.gnu.org/software/autoconf/) * GNU Autoconf Archive (http://www.gnu.org/software/autoconf-archive/) * pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config) You may also need: * Sphinx (http://sphinx.pocoo.org/) * LaTex (http://www.latex-project.org/) * GNU Texinfo (http://www.gnu.org/software/texinfo/) * GNU help2man (http://www.gnu.org/software/help2man/) These optional dependencies are required for building the documentation. You will need these optional dependencies installed if: * You are preparing a distribution archive However, you do not need them if: * You are building from a distribution archive, or * You don't care about building the documentation Debian-based (inc. Ubuntu) Systems ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can install the required dependencies by running: sudo apt-get install libtool sudo apt-get install automake sudo apt-get install autoconf sudo apt-get install autoconf-archive sudo apt-get install pkg-config Optional dependencies: sudo apt-get install help2man sudo apt-get install python-sphinx sudo apt-get install texlive-latex-base sudo apt-get install texlive-latex-recommended sudo apt-get install texlive-latex-extra sudo apt-get install texlive-fonts-recommended sudo apt-get install texinfo Be sure to update the version numbers to match your system's available packages. Mac OS X ~~~~~~~~ Install Homebrew, if you do not have it already: https://github.com/mxcl/homebrew You can install the required dependencies by running: brew install libtool brew install automake brew install autoconf brew install autoconf-archive brew install pkg-config Unless you want to install the optional dependencies, skip to the next section. Install what else we can with Homebrew: brew install help2man If you don't already have pip installed, install it: sudo easy_install pip Now, install the required Python packages: sudo pip install sphinx sudo pip install docutils sudo pip install pygments Download MaxTeX from here: http://www.tug.org/mactex/ Follow the instructions to get a working LaTeX install on your system. Windows ~~~~~~~ Follow the instructions in INSTALL.Windows and build all components from source, using the same Visual C++ compiler and runtime. Bootstrapping ------------- Bootstrap the pristine source by running: ./bootstrap You must repeat this step every time you update your source checkout. Configuring ----------- Configure the source by running: ./configure Note that this will not fail when the optional dependencies are missing. To ensure the optional dependencies are installed, run: ./configure --enable-strictness If you don't care about docs and want to skip the whole thing, run: ./configure --disable-docs If you're working on the build system itself, you can run: ./configure --disable-tests This skips the tests allowing quicker `make' cycles. Testing ------- Check the test suite by running: make check Generate a coverage report by running: make cover Please report any problems to the developer's mailing list. Releasing --------- The release procedure is documented here: https://wiki.apache.org/couchdb/Release_procedure Unix-like Systems ~~~~~~~~~~~~~~~~~ Prepare the release artefacts by running: make distcheck You can prepare signed release artefacts by running: make distsign The release artefacts can be found in the root source directory. Microsoft Windows ~~~~~~~~~~~~~~~~~ Prepare the release artefacts by running: make dist The release artefacts can be found in the `etc/windows` directory. Until the build system has been improved, you must make sure that you run this command from a clean source checkout. If you do not, your test database and log files will be bundled up in the release artefact.