Jump to content

# Free Pascal package guidelines

From ArchWiki

This page explains on how to write PKGBUILDs for software built with the Free Pascal Compiler (FPC). 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 targeting i686 Linux from multilib and named in the format of `fpc-cpu-system-pkgname` when targeting 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, *.rsj) 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, *.rsj) 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

Category:

- Arch package guidelines

Free Pascal package guidelines
Add topic