Source: 

This doesn't mean we should have to pay for them. After paying higher than average prices for iPhone contracts, are you really about to fork out more money for 15-second clips of your favourite songs? We don't think this is fair and to right this injustice we show you how to make your very own iPhone ringtones for free. All you'll need is an iPhone (of course),iTunes and a swag of MP3 files.

  1. Open iTunes and select your favourite MP3 audio file.
  2. Right-click (Cmd-click for Macs) on this file in your library to bring up the context menu.
  3. Select Get Info

    This will open a new dialogue box showing various details about the audio file. Select the Options tab.

  4. Check the boxes next to both Start Time and Stop Time and enter the times you want your new ringtone to start and stop (the maximum length is 40 seconds) then click OK.

    This will return you to your music library.

  5. Right-click (Cmd-click) on the same music file again and this time select Convert Selection to AAC.

    iTunes will process this briefly and insert the new ringtone-sized file under the original file in your library.

  6. Right-click (Cmd-click) on the newly created file and select: "Show in Windows Explorer (or Finder on a Mac)"

A new dialogue box will open showing you the location of this file. Select the file and rename it, changing the file extension from ".m4a" to ".m4r". Windows will warn you that this change may make the file unstable, but continue anyway.

Back in iTunes, delete the ringtone file you've created from your library, then import the renamed ".m4r" file into your library. Connect your iPhone and sync your playlist. You may have to manually drag the .m4r file into the Ringtones section on your iPhone. With your iPhone synced this file is now ready to be used as a ringtone.