if detected, WITH_ICONV will be defined in the C code
WITH_ICONV is also added to Makefile.config
OSX do not use this flag setting in Makefile.config, as it is set at compile time based on target OS version
the actual C code is not changed as the current iconv code is hardcoded for OSX and would break if any other OS got iconv
This detection system is by request of Darkvater
Instead of compiling a binary for each arch and then join them in the end, each .o file is now compiled as a fat file
This means that the makefile will not call itself to make a binary for each target and we don't have to make clean between each build
it also means that if one file changed, we don't have to recompile all files
Another benefit is since it's handled at .o level and though LDFLAGS, no special code is needed if we decide to compile more binaries (like a lot of stuff used to happen at post linking)
We also needs much less flags to set up, so it should be even easier to get to work out of the box now
The tradeoff in doing so is that now the binary needs at least OSX 10.3.9 to execute
To deal with this issue, the JAGUAR flag can be used to compile for older OSes. We will release a binary for old OSes at next release to see if anybody even downloads it (not that many people use OSX 10.2 anymore)
GPMI will not work on 10.2 anyway so we will cut support for it some day anyway
G4 have no problems using G3 code while G5 can, but really benefit from getting their own optimised code (Apple: G5 is not just a fast G4)
Also changed FAT_BINARY to UNIVERSAL_BINARY since Apple removed most (all?) references to fat binaries on their homepage two days after I added FAT_BINARY
now PPC code is always compiled before x86 code
strgen and lng files are only compiled once, which results in shorter building time
the makefile now assigns default values to undefined values so much less needs to be set up
the code is now easier to maintain