diff --git a/.gitignore b/.gitignore index 26d8b13d9..b5ce9ac4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -*build* +*build*/ *flymake* CMakeLists.txt.user* *.patch diff --git a/doc/building.rst b/doc/building.rst new file mode 100644 index 000000000..ad1f05cea --- /dev/null +++ b/doc/building.rst @@ -0,0 +1,118 @@ +Building the Client +=================== + +The ownCloud Client requires Mirall and CSync_. Mirall is the GUI frontend, +while CSync is responsible for handling the actual synchronization process. + +Linux +----- + +1. Add the `ownCloud repository from OBS`_. +2. Install the dependencies (as root, or via sudo): + + * Debian/Ubuntu: ``apt-get update; apt-get build-dep owncloud-client`` + * openSUSE: ``zypper ref; zypper si -d owncloud-client`` + * Fedora: ``yum install yum-utils; yum-builddep owncloud-client`` + +3. Follow the generic build instructions. + +Mac OS X +-------- + +Follow the generic build instructions. + +You can install the missing dependencies via MacPorts_ or Homebrew_. +This is only needed on the build machine, since non-standard libs +will be deployed in the app bundle. + +The only exception to this rule is libiniparser_, which lacks a decent +build system. You need to copy the header and lib files to +``/usr/local/include`` and ``/usr/local/lib`` respectively. + +.. note:: + You should not call ``make install`` at any time, since the product of the + mirall build is an app bundle. Call ``make package`` instead to create an + install-ready disk image. + +Windows (cross-compile) +----------------------- + +Due to the amount of dependencies that csync entails, building the client +for Windows is **currently only supported on openSUSE**, by using the MinGW +cross compiler. You can set up openSUSE 12.1 or 12.2 in a virtual machine +if you do not have it installed already. + +In order to cross-compile, the following repositories need to be added +via YaST or ``zypper ar`` (adjust when using openSUSE 12.2):: + + http://download.opensuse.org/repositories/isv:/ownCloud:/devel:/mingw:/win32/openSUSE_12.1/isv:ownCloud:devel:mingw:win32.repo + http://download.opensuse.org/repositories/windows:/mingw/openSUSE_12.1/windows:mingw.repo + http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_12.1/windows:mingw:win32.repo + +Next, install the cross-compiler packages and the cross-compiled dependencies:: + + zypper si -d mingw32-ocsync + zypper si -d mingw32-owncloud-client + +Now, follow the generic build instructions, but make sure to append +the following parameter to both cmake calls:: + + -DCMAKE_TOOLCHAIN_FILE=../mirall/admin/win/Toolchain-mingw32-openSUSE.cmake + +Finally, just build by running ``make``. ``make package`` will produce +an NSIS-based installer, provided the NSIS mingw32 packages are installed. + +Generic Build Instructions +-------------------------- + +At the moment, ownCloud Client requires a forked version of CSync. Both +CMake and Mirall can be downloaded at ownCloud's `Client Download Page`_. + +If you want to build the leading edge version of the client, you should +use the latest versions of Mirall and CSync via Git_, like so:: + + git clone git://git.csync.org/users/freitag/csync.git ocsync + git clone git://github.com/owncloud/mirall.git + +Next, create build directories:: + + mkdir ocsync-build + mkdir mirall-build + +This guide assumes that all directories are residing next to each other. +Next, make sure to check out the 'dav' branch in the newly checked out +`ocsync` directory:: + + cd ocsync + git checkout dav + +The first package to buidld is CSync:: + + cd ocsync-build + cmake -DCMAKE_BUILD_TYPE="Debug" -DLOG_TO_CALLBACK=ON -DWITH_LOG4C=OFF ../ocsync + make + +You probably have to satisfy some dependencies. Make sure to install all the +needed development packages. You will need ``iniparser``, ``sqlite3`` as well as +``neon`` for the ownCloud module. ``libssh`` and ``libsmbclient`` are optional +and not required for the client to work. If you want to install the client, run +``make install`` as a final step. + +Next, we build mirall:: + + cd ../mirall-build + cmake -DCMAKE_BUILD_TYPE="Debug" ../mirall \ + -DCSYNC_LIBRARY_DIRECTORY=../ocsync-build \ + -DCSYNC_INCLUDE_DIRECTORY=../ocsync/src + +If this succeeds, call ``make``. The owncloud binary should appear in the +``bin`` directory. You can also run ``make install`` to install the client to +``/usr/local/bin``. + +.. _`ownCloud repository from OBS`: http://software.opensuse.org/download/package?project=isv:ownCloud:devel&package=owncloud-client +.. _CSync: http://www.csync.org +.. _`Client Download Page`: http://owncloud.org/sync-clients/ +.. _Git: http://git-scm.com +.. _MacPorts: http://www.macports.org +.. _Homebrew: http://mxcl.github.com/homebrew/ +.. _libiniparser: http://ndevilla.free.fr/iniparser/ diff --git a/doc/index.rst b/doc/index.rst index 35d087202..ae0e31bc3 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -14,6 +14,7 @@ Contents install usage + building .. Indices and tables .. ==================