@kas1e
It's Autolib (-lauto) which gets the interface for ITimer on your behalf. Otherwise you have to get it yourself. I have not checked any of those source files you listed. But one of those init functions handles it most likely. Or in some of the makefiles the Autolib is enabled and in some of them it's missing.
With libraries:
IntuitionBase=(struct Library *)IExec->OpenLibrary("intuition.library",53);
IIntuition=(struct IntuitionIFace *)IExec->GetInterface(IntuitionBase,"main",1,NULL);
With devices:
TimerIO=(struct TimeRequest *)IExec->AllocSysObjectTags(ASOT_IOREQUEST,ASO_NoTrack,FALSE,ASOIOR_ReplyPort,TimerPort,ASOIOR_Size,sizeof(struct TimeRequest),TAG_DONE);
if (TimerIO!=NULL)
{
TimerDev=IExec->OpenDevice("timer.device",UNIT_MICROHZ,(struct IORequest *)TimerIO,0);
if (TimerDev==0)
{
ITimer=(struct TimerIFace *)IExec->GetInterface((struct Library *)TimerIO->Request.io_Device,"main",1,NULL);
}
}