Apache CouchDB README.Windows ============================== For a high-level guide to Microsoft Windows. Dependencies ------------ You will need the following installed: * Erlang OTP (=14B01) (http://erlang.org/) * ICU (=4.4.*) (http://icu.sourceforge.net/) * OpenSSL (http://www.openssl.org/) * Mozilla SpiderMonkey (1.8) (http://www.mozilla.org/js/spidermonkey/) * libcurl (http://curl.haxx.se/libcurl/) * Cygwin (http://www.cygwin.com/) * Visual Studio 2008 (http://msdn.microsoft.com/en-gb/vstudio/default.aspx) General Notes ------------- * When installing Erlang, you must build it from source. The CouchDB build requires a number of the Erlang build scripts. * When installing ICU, select the binaries built with Visual Studio 2008. * When installing Cygwin, be sure to select all the `development` tools. * When installing libcurl, be sure to install by hand. The Cygwin binaries are incompatible and will not work with Erlang. Setting Up Cygwin ----------------- Before starting any Cygwin terminals, run: set CYGWIN=nontsec To set up your environment, run: [VS_BIN]/vcvars32.bat Replace [VS_BIN] with the path to your Visual Studio `bin` directory. You must check that: * The `which link` command points to the Microsoft linker. * The `which cl` command points to the Microsoft compiler. * The `which mc` command points to the Microsoft message compiler. * The `which mt` command points to the Microsoft manifest tool. If you do not do this, the build may fail due to Cygwin ones found in `/usr/bin` being used instead. Building Erlang --------------- You must include Win32 OpenSSL. However, you can skip the GUI tools by running: echo "skipping gs" > lib/gs/SKIP echo "skipping ic" > lib/ic/SKIP Follow the rest of the Erlang instructions as described. After running: ./otp_build release -a You should run: ./release/win32/Install.exe This will set up the release/win32/bin directory correctly. To set up your environment for building CouchDB, run: eval `./otp_build env_win32` To set up the `ERL_TOP` environment variable, run: export ERL_TOP=[ERL_TOP] Replace `[ERL_TOP]` with the Erlang source directory name. Remember to use `/cygdrive/c/` instead of `c:/` as the directory prefix. To set up your path, run: export PATH=$ERL_TOP/release/win32/erts-5.8.2/bin:$PATH If everything was successful, you should be ready to build CouchDB. Relax. Building CouchDB ---------------- Once you have satisfied the dependencies you should run: ./configure \ --with-js-include=/cygdrive/c/path_to_spidermonkey_include \ --with-js-lib=/cygdrive/c/path_to_spidermonkey_lib \ --with-win32-icu-binaries=/cygdrive/c/path_to_icu_binaries_root \ --with-erlang=$ERL_TOP/release/win32/usr/include \ --with-win32-curl=/cygdrive/c/path/to/curl/root/directory \ --with-openssl-bin-dir=/cygdrive/c/openssl/bin \ --with-msvc-redist-dir=/cygdrive/c/dir/with/vcredist_platform_executable \ --prefix=$ERL_TOP/release/win32 This command could take a while to complete. If everything was successful you should see the following message: You have configured Apache CouchDB, time to relax. Relax. To install CouchDB you should run: make install If everything was successful you should see the following message: You have installed Apache CouchDB, time to relax. Relax. First Run --------- You can start the CouchDB server by running: $ERL_TOP/release/win32/bin/couchdb.bat When CouchDB starts it should eventually display the following message: Apache CouchDB has started, time to relax. Relax. To check that everything has worked, point your web browser to: http://127.0.0.1:5984/_utils/index.html From here you should run the test suite in either Firefox 3.6+ or Safari 4+.