GPL is not that bad
It was confusing years ago but a lot of suffering went over it, so some resources should abound.
(Myself, I'm rather fond of the BSD license, keeps it clear
Using GPL _tools_ isn't relevent; using Windows based compilers doesn't make your app commercial, neither does using BSD or Linux tools make your app open source required.
Linking to code -- check each piece of codes license; LGPL means you need only publish changes to the library itself, but linking against it doesn't imply anything to your code. ie: If you update SDL, you need to publish the changes; if you link to SDL, you're in the clear.. SDL is compatible with closed releases, or it'd never be useful.
Linking to GPL means GPL is inside your compiled object, and thus to empower the user with the same power, they need source.
I made libpnd LGPL very specifically -- sure it'd sort of annoy me if someone made lots of $$ off my work, but it'd also be more or less useless if they couldn't
So libpnd has to be LGPL if I want it to be universally used. Making someone rewrite it for a commercial app would just make for platform incompatibilities. So you can link against libpnd and not make your code open if you want.
I wonder if you can just provide .o files along with the source to the GPL module used (say) to satisfy it -- the user would have the same empowerment, but I'd have to read the GPL over in that case, and in any case would be rude (ie: you've leveraged someone elses code directly in yours, do the same favour back.. or rewrite it yourself
You can also do tricks like run a sub-job that has the GPLed code in it, and thus only release that as open source while keeping the wrapping parent closed. And so on through many ways.. you can 'work around' the GPL quite easily for those thorny situations. (ie: Shoudl you wish to make a closed source or commercial app, or if you have contracts not permitting some information to be published or the like.) ie: you could make a game that runs another program and poaches output via pipe or shared memory or whatever, if you had to.
(For the reader, commercial and closed source does not make something bad or evil; some people seem to think so, but they're deluded and never had to make a living
jeff