Apple is very conservative about its iOS and related customizations. Many of them can protect your dear iPhone from bad things but some of them are outright ridiculous like not being able to set your own ringtone. Although Apple has started giving the option of buying the tones but tones of every song are not available and also, quite frankly, it seems erratic to have to buy tones in order to use them as your phone's ringtone. But where there is will, there is a way and hence here comes the work-around to help you set your favorite song and any tune you want as ringtone. For the jailbreak-phobia people out there, do not worry as this does not require any kind of jailbreak tweak and works on any and every iPhone.
So lets have a look at how to do it.
Step 1: Open your iTunes and go to Edit -> Preferences (Preferences in new iTunes) in its menu options.
Then, in the preferences, go to General tab and then go to Import Settings. Set the Import Using option to AAC Encoder and then click Ok.
Step 2: Right click on the song or tune you want to use as your ringtone and click on Get Info.
Then go to the Options tab and set the start and stop times with difference between them of up to 30 seconds. After this click Ok.
Step 3: Now again right click on the song or the tune you wanted to make your ringtone and click on Create AAC version.
Now the iTunes will make an AAC version (.m4a) version of the song and save it to your iTunes media folder which is generally C:\Users\<Your user name>\Music\iTunes\iTunes Media.
If you are not sure where your iTunes media folder is, can easily be found out by going to Preferences -> Advanced.
Step 4: Now in this folder, right click on the file you just created and change its extension from .m4a to .m4r thus making it an iTunes ringtone file.
Step 5: Now right click on this file and open it with iTunes. Or you can use Add File option of iTunes to add this to its library. When you will do either of the above two, this small ringtone file will get automatically added to Tones section of iTunes.
Now connect your iPhone to your computer and then click on it. Then go to Tones tab and check Sync Tones option. All Tones should get selected by itself. After this, click on Apply.
When the synchronization process gets completed, you will have the song as your ringtone in your Sounds option in the settings menu. Don't forget to change the settings of the original song to run without any start and stop timings.
Now you can choose the song you wanted as the ringtone of your dear iPhone.