.Dd July 22, 2019 .Dt CPL 1 .Os \" Current OS .Sh NAME .Nm cpl .Nd Component Pascal Linker .Sh SYNOPSIS .Nm .Op Ar options .Op Fl main Ar module .Op Fl os Ar sys .Op Fl o Ar out .Op Cm modules .Sh DESCRIPTION .Nm combines modules and make executable files. .Pp Modules initialized in user specified order. .Pp Its arguments are as follows: .Bl -tag -width Ds .It Fl os Ar sys Make excutable file for one of following systems: linux, freebsd, openbsd, win32. .It Fl interp Ar path Specify ELF interpreter. (Default are system dependent) .It Fl o Ar out Specify output program name. .It Fl static Do not link shared libraries. .It Fl dll Link as shared object. .It Fl sinit Use static initialization scheme. By default initialization order managed by Kernel, but with this option modules initialized directly without using Kernel. .It Fl m Ar module , Fl main Ar module Use specified module body as program entry point. In most cases it is Kernel. .It Fl k Ar module , Fl kernel Ar module Use specified module body as runtime kernel. This module must contain procedures NewRec and NewArr that used for dynamic memory allocation. By default used module Kernel. .It Fl codedir Ar path Add search path for code files. .It Fl legacycodedir Ar path Add search path for subsystems with code files. .It Fl trap Trap on first error. Useful for debugging linker itself. .It Fl version Print linker version .El \" End Options List .Sh EXIT STATUS .Ex -std .Sh SEE ALSO .Xr cpc 1 .El