wiki:MovedToGitHub/Building

Version 2 (modified by Waldorf, 15 years ago) (diff)

Getting the Source

Building Transmission

Getting the Source

Source code for official releases can be found on our download page.
If you've got SVN installed and would like to use a fresh code snapshot, open a terminal window and type:

$ svn co svn://svn.m0k.org/Transmission/trunk Transmission

On Mac OSX

Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode, however, make sure you have this software:

  • Mac OS X 10.5 or newer
  • Mac OS X 10.5 SDK
  • Xcode 3.0 or newer

(Found on your OSX installation disk, or from the Apple Developer website)

Building on Unix

If this is your first time compiling on Unix, you'll need a few basic tools:

  • gcc
  • autoconf 2.54 or newer
  • libtool
  • automake 1.9 or newer
  • gettext 0.14.1 or newer
  • intltool 0.23 or newer

Once you've got the basics out of the way, here are the libraries that Transmission needs to have in order to build:

  • OpenSSL 0.9.8 or newer
  • libcurl 7.15.0 or newer
  • GTK+ 2.6 or newer (only needed by the GTK+ gui)
  • libnotify 0.0.4 (optional, and only needed by the GTK+ gui)
  • DBUS 0.70 (optional, and only needed by the GTK+ gui)

Ubuntu users: the Ubuntu packages needed to build Transmission are: openssl openssl-devel intltool autoconf automake libtool gettext gettext-devel libcurl libcurl-devel.
RPM users: you'll also need to install the corresponding -devel packages.

Building from a tarball

$ tar xvjf transmission-1.32.tar.bz2
$ cd transmission-1.32
$ ./configure -q && make -s
$ su (if necessary for the next line)
$ make install

Building from an SVN snapshot

First Time

$ svn co svn://svn.m0k.org/Transmission/trunk Transmission
$ cd Transmission
$ ./autogen.sh && make -s
$ su (if necessary for the next line)
$ make install

Updating

$ cd Transmission
$ make clean
$ svn up
$ make -s
$ su (if necessary for the next line)
$ make install

Switches

The transmission ./configure (or ./autogen.sh) script allows you to switch on/off certain parts. To use these, you'll either use --enable-* or --disable-*. eg. To disable the GTK client: --disable-gtk.

The switches that are available are:

  • gtk = enables GTK+ client (default )
  • libnotify = enables lib notify (default)
  • cli = enables cli client (default)
  • daemon = enables transmission-daemon and transmission-remote client (default)
  • darwin = enables Mac client (default, if possible) *review!
  • wx = enables wxWidgets client (unsupported)
  • beos = enables beos client (unsupported)

Comments

jinzo: I think "make clean" before running svn up is a good practice, but I may be wrong

Waldorf_: hmm, I got that from the readme... If you're sure, I'll add it. otherwise, ask charles_ first

charles: it's not essential, but it's probably a good idea. It should be added.