[fpc-devel] Makeskel errors on Windows

Hans-Peter Diettrich DrDiettrich1 at aol.com
Fri Dec 9 02:08:20 CET 2011

Makeskel expects another(?) semicolon after win\wininc\func.inc:

function GetRandomRgn(aHDC: HDC; aHRGN: HRGN; iNum: WINT): WINT; 
stdcall; external 'gdi32';
function ...

Perhaps it cannot parse the "external" directive?

FPDoc seems to suffer from the same problem, it creates an all-empty 
description for windows.pp.

Workaround: exclude "func.inc" from the include file list in windows.pp:

{$IFNDEF fpdocsystem}
   {$i func.inc}

Then windows.pp can be added to the rtl project, and is documented by 
fpdoc. No content so far, of course.

I also could not find an option to make the Makefile use a different 
OSTARGET - it always seems to use the current system settings. Even if 
some cross-platform information may be desireable in the documentation, 
some essentially platform-dependent units should be documented in the 
current platform variation, e.g. rtl/win32/system.pp instead of 
rtl/linux/system.pp, winsocks instead of or in addition to the linux 
sockets. For units for other targets (dos...) the compiler options 
should reflect the proper compiler options (-d<target>, -Fi), else the 
generated documentation may be quite useless.

For platform-specific units with a common interface (system, classes...) 
the XML files can either reflect all platform variations, or the 
descriptions can be separated into common documentation (*.xml) and 
platform specific extensions (*<target>.xml), so that entries are not 
inadvertently removed, when they do not apply to the platform of an 
documentation writer.

Regardless of whether we want to provide all-in-one documentation, or 
platform specific documentation, the generation of the documents 
deserves some more thoughts. The current Linux (+dos+...-windows) 
documentation is not really helpful to Windows users.


More information about the fpc-devel mailing list