Now I have gotten the legacy code to compile it won't link... I'm still poking around to see what I figure out but so far:
1. The compiler won't make .o files for units that are found in a directory other than the one you're compiling from.
I have three directories and I compile from within one of them. The units in the other two directories are located using --unit-path compiler option. Reading the docs, I'm under the impression its supposed to default to placing the .o files into the directory you compile from for all units, regardless where the units are located unless you play with the compiler options. The .gpi files *are* made correctly. (I'm using --autobuild, btw.)
Why won't it make .o files for the units in the other directories?
Doing
gpc -c ../otherdir/someunit.p
manually works fine and the resulting .o file resolves the references it should. So I can manually fix this, but the behaviour seem a little, well, odd :-)
Does this ring a bell with anyone?
2. (Less important: I suspect this will resolve itself once the above issue is dealt with.) The linker its looking for a lot of init_* references, which I presume are initialisation routines. The docs indicate that units don't need to supply an initialisation part. Does linker simply "do away" with these references, or are empty initialisation routines required?
Grant