Hi, I had a heck of a time getting this to compile properly on linux; here's some changes to make it work better.
Update to ptypes 2.1.1. This consisted entirely of changing all instances of ptypes:: to pt:: to reflect changes in the namespace upstream.
Created a proper makefile. This one does incremental compilation, so you don't need to recompile everything after making one change, and you can do parallel compilation
No longer compile with the shipped libraries. Your users (including myself) may have LAME, libspotify, or ptypes already installed from their dirsto's repos. It is generally agreed to compile against already installed libraries instead of building your own, unless the library has to be compiled statically (which you weren't doing anyway). This reduces the size of the resulting system (no duplicate libraries) and ensures libraries are always up-to-date. Additionally, I had to make some modifications to ptypes to compile correctly (the test cases don't compile because of an ambigious case in the code), so users with a ptypes package in their repos will appreciate this doubly.
Added explicit casts to the test cases in utf8.c. gcc was throwing a fit about this.
I accordance with the removed dependancy on included libraries, I suggest you trim down the source tree (i.e. by removing src/external). Sorry about having this all in 2 commits. I didn't think I would need to make so many changes >.> Also didn't realize the LAME files would get modified through building them.