HowTo compile on Mac

From AMule Project FAQ
Revision as of 22:07, 24 August 2007 by Lionel77 (Talk | contribs | merge | delete)

Jump to: navigation, search

How to get and install aMule on Apple Mac OS X.

  1. You can simply download the finished application ('binary release') or
  2. You compile it from a CVS source snapshot.

The preceding version of this page covering aMule 2.0.0rc8 and earlier is archived here.

Binary releases

If you don't want to bother with installing and compiling all those tools and sources, then get one of the pre-compiled aMule applications. The official release is considered 'stable', but every now and then applications are built from the current source to allow more people to test new features or the like.

  1. Latest official binary release: aMule-2.1.3-Mac
  2. Periodically compiled binary from cvs: amule forum

Now, to install the downloaded binary, just drag the aMule application to a folder of your choice (e.g., /Applications).

To start aMule, double-click the application icon.

Note: You might want to take a look at the Mac specific usage article.

Compiling from source

Compiling from source allows most current bug reports, because you can compile and test the CVS snapshot of the very day.

To compile aMule from source you need some development tools, the wxWidgets library and the aMule source.

Get the sources and development tools

Xcode

Xcode is Apple's development environment. We need it for the GCC compiler. You may have Xcode on CD/DVD, e.g. it is on the OS X 10.4 DVD.

Otherwise, you can download it from Apple, but you must sign up for a free-of-charge developer account first.

  1. Get XCode from http://developer.apple.com/tools/download
  2. "Member Site"->"Log In"->"Download Software"->"Developer Tools"->"Download Xcode Tools last release">"Install"

MacPorts (formerly known as DarwinPorts)

MacPorts is an open source installer for lots of open source tools ported to Mac OS X. aMule needs a few of these tools to compile properly. Alternatively, you can also use Fink to install these tools or you can install them manually.

  1. Download the most recent version of MacPorts
  2. Read MacPorts' documentation to learn how to install applications through MacPorts.

The tools that you will need to install are:

  1. automake
  2. flex
  3. gettext (only required if you want to use a language other than English in aMule)
  4. libpng

wxMac

wxMac is the port of the wxWidgets library for Mac OS X. This library is used to make aMule 'multi-platform'.

  1. Get the source from: http://www.wxwidgets.org/downloads/ (Source Archives: wxMac)
  2. Extract the archive (just double-click it)

Or get the current CVS snapshot. Warning: the wxMac CVS is frequently in a bad condition (e.g., currently you need to switch the vswprintf implementation that wx uses, see here for more details).

bash: cd ~/Desktop
bash: cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/pack/cvsroots/wxwidgets login
Note: password is 'anoncvs'
bash: cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/pack/cvsroots/wxwidgets checkout wxMac

aMule itself

  1. Get latest daily CVS source snapshot: aMule CVS
  2. Extract the archive (just double-click it)

Compile the sources

Put the amule folder and the wxMac folder in the same place, e.g. on the desktop (if using another location, ensure that there are no spaces in the path as this can lead to file not found errors with wxMac).

Important: If you use Xcode 2.0 then the gcc 4.0 that comes with it is somewhat broken and can't compile aMule. There are two solutions: upgrade to Xcode 2.1 by downloading it from Apple for free, or switch your system to use gcc 3.3. If your prefer to switch to gcc 3.3, first check the version of your current default gcc with gcc --version and then switch to version 3.3 if required:

bash: gcc --version
bash: sudo gcc_select 3.3

Compile wxMac

This step is only needed once, even if you later download and compile a newer version of the aMule CVS source.

The following assumes that you have placed the above packages on your Desktop.
cd into the wxMac folder, configure and make:

bash: cd ~/Desktop/wxMac-2.8.4/build
bash: ../configure --disable-shared --enable-unicode --enable-debug --enable-debug_gdb
bash: make

Note: The second command above makes sure that wxMac is compiled with debug information. This information allows you to submit a helpful stacktrace if aMule crashes or a sample if it hangs to the aMule developers. If you do not want to compile a debug version then you can use "--disable-debug --disable-debug_gdb" instead.

Note: If you want to compile a Universal Binary of aMule (i.e., a version of aMule that runs on both PowerPC based and Intel based Macs) then you can add the "--enable-universal_binary" parameter at the end of the second command. If you don't include this parameter wxMac and aMule will be compiled for your native architechture only.

Note: The above make command may take up to 45 minutes, depending on the speed of your CPU(s) and the parameters you chose.

Compile aMule

Now cd into the amule folder, configure and make:

Note: You can copy and paste the 4 lines for ./configure in one go.

bash: cd ~/Desktop/amule-cvs
bash: ./configure --disable-systray --disable-gtk --enable-embedded_crypto    \
           --with-wx-config=../wxMac-2.8.4/build/wx-config    \
           --enable-cas --enable-webserver --enable-amulecmd    \
           --enable-debug --disable-optimize
bash: make
bash: ./src/utils/scripts/mac_packager

Note: If you don't want to compile aMule with debug information (see above) you can use "--disable-debug --enable-optimize" in the configure statement.

Note: In order to compile aMule as a Universal Binary (see above) you will need to add the following parameters to the configure statement:

           --disable-dependency-tracking \
           CFLAGS="-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" \
           CXXFLAGS="-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"

Running aMule

Once the mac_packager script has finished, you can move the aMule application from the amule-cvs folder to anywhere on your hard drive.

Important: Because aMule CVS versions contain experimental code they need to be started via the Terminal to prevent users from accidentally running a potentially unstable application:

  1. Drag the aMule application onto a Terminal window. Terminal will insert the path to the application onto the command line. It will also add a space after the path.
  2. Now delete the space at the end of the path and paste "/Contents/MacOS/amule --even-if-lfroen-surreptitiously-removes-it-this-will-stay". Then hit return to start aMule.

If starting aMule this way annoys you, you can simply comment out the check for the above switch in amule.cpp before you compile aMule. If you do this, however, we strongly urge you to not pass along the resulting binary to anybody else.