[fpc-pascal] Manual sources? Some doc questions.

Michael Van Canneyt michael at freepascal.org
Fri Mar 3 13:44:49 CET 2017

On Fri, 3 Mar 2017, Hans-Peter Suter wrote:

> I couldn't find the source for the manuals, e.g. [prog.pdf](
> http://www.freepascal.org/docs.var). Does someone know where I can find
> them?

in subversion. See


Section 'Other repositories'

> Some other questions:
>  - In prog.pdf there is a section about "Compiler and RTL source tree
> structure". Is there some documentation about the (not-mentioned but huge)
> 'package' folder?

No, this is on my todo list (since ages :/ )

>    - (I suppose 'rtl' folder is the base for the compiler and 'package'
> kind of an extended standard library? In 'package' there are folders like
> 'fcl_<name>', 'rtl_<name>' and (many) <name>, how is this motivated?

"name" are usually import packages for libraries.
"rtl-name" is something which used to be in RTL but has been moved to
packages, so the compiler bootstrap cycle would be shorter.
"fcl-name" are actively developed classes for use with FPC.

>  - There is wiki docu about fpcmake and FPMake. But I'm still a bit
> ignorant about the purpose of the latter. Could it be ignored? When I
> looked up source code installation instructions, in the forum it was
> mentioned to get the code and then ~ `make distclean; make all; make
> install`. This sounds more familiar to me than compiling code into a binary
> FPMake-package

The makefiles call fpmake. So you cannot ignore them.

>    - With FPMake I see the aim to split the code up into packages (with
> units, binaries, examples and documentation). But I don't (yet) understand
> why it builds fpmake-executables to do so? (Really ignorant: and why e.g.
> there isn't 'just a hypothetical github-package-project' which can be
> cloned, built and installed)? Is there any docu, discussion about this
> subject?

the fpmake executables are exactly meant to enable this
github-package-project, without falling back on make.

There are 2 motivations for using fpmake:
1. Make does not understand dependencies as FPC understands them.

2. fpmake is pascal code. Anyone writing pascal code can create a fpmake file,
    no extra tools need to be learned. This is the main motivation.


More information about the fpc-pascal mailing list