Free Pascal package guidelines

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Arch package guidelines

32-bitCLRCMakeCrossDKMSEclipseElectronFontFree PascalGNOMEGoHaskellJavaKDEKernelLispMesonMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustShellVCSWebWine

This page explains on how to write PKGBUILDs for software built with the Free Pascal Compiler (FPC)[dead link 2021-11-10 ⓘ]. Compiling for x86_64 Arch Linux requires the fpc package.

Free Pascal

Package naming

The project name alone is usually sufficient. However, in the case of cross-compiling, the package should be prefixed with fpc32- when targetting i686 Linux from multilib and named in the format of fpc-cpu-system-pkgname when targetting non-Arch Linux systems.

Helpful snippets

  • Determine FPC's version and the CPU and OS of the units to output:
_unitdir=`fpc -iSP`-`fpc -iSO`
_fpcver=`fpc -iV`

Packaging

Please adhere to the following when making an FPC-based package:

  • always add fpc to either makedepends or depends
  • always put all compiled units (*.a, *.compiled, *.o, *.ppu, *.res, *.rst) under /usr/lib/fpc/$_fpcver/units/$arch-linux
  • add staticlibs to options if installing an import library

Cross compiling

  • always add the corresponding cross compiler package mentioned above (fpc-cpu-system-rtl) to depends
  • always add !strip to options for non-Unix-based systems
  • always put all compiled units (*.a, *.compiled, *.o, *.ppu, *.res, *.rst) under /usr/lib/fpc/$_fpcver/units/$_unitdir (or if multilib, /usr/lib/fpc/$_fpcver/units/i386-linux)
  • always use any (x86_64 if multilib) as the architecture
  • add staticlibs to options if installing an import library