Free Pascal パッケージガイドライン

提供: ArchWiki
2015年8月10日 (月) 13:30時点におけるKusakata (トーク | 投稿記録)による版 (ページの作成:「Category:パッケージ開発 en:Free Pascal package guidelines {{Package Guidelines}} このページでは [http://freepascal.org Free Pascal Compiler (FPC)]...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

このページでは Free Pascal Compiler (FPC) でビルドされるソフトウェアの PKGBUILD を書く方法を説明しています。現在 Linux のソフトウェアをビルドする方法は2つ存在し、FPC クロスコンパイルを使って他のアーキテクチャ用にソフトウェアをビルドする方法もあります:

Arch Linux

  • fpc is available in the official Arch community repository and provides a compiler targetting only your host CPU (i686 or x86_64).
  • fpc-multilibAUR is available from the Arch User Repository which provides an x86_64 host compiler targetting both i686 and x86_64 CPU Linuxes. This will also provide the ppcross386AUR FPC compiler driver package.

クロスコンパイラ

Free Pascal

パッケージの命名規則

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.

便利なスニペット

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

パッケージング

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

クロスコンパイル

  • always add the corresponding cross compiler package mentioned above (fpc-cpu-system-rtl or fpc-multilibAUR for multilib) 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