在 bootstrapping 計算機上
1. 從 Gitlab下載FPC:
$ git https://gitlab.com/freepascal.org/fpc/source.git fpc-src
2. 為目標架構安裝 fpc 和 gcc cross 工具鏈:
$ apt install fpc gcc-m68k-linux-gnu g++-m68k-linux-gnu cpp-m68k-linux-gnu
4. 進入 FPC 源碼目錄,搭建一個交叉編譯器:
$ cd fpc-src ~/fpc-src $ BINUTILSPREFIX=m68k-linux-gnu- make crossall crossinstall CPU_TARGET=m68k CROSSOPT="-Cp68020 -Cf68881 -CaDEFAULT" OS_TARGET=linux FPC=/usr/lib/x86_64-linux-gnu/fpc/3.2.2/ppcx64 INSTALL_PREFIX=/home/glaubitz/fpc-m68k/
5. 構建原生編譯器:
~/fpc-src $ BINUTILSPREFIX=m68k-linux-gnu- make compiler CPU_TARGET=m68k OS_TARGET=linux FPC=/home/glaubitz/fpc-m68k/lib/fpc/3.3.1/ppcross68k CROSSOPT="-Cp68020 -Cf68881 -CaDEFAULT -Fu/home/fpc-m68k/lib/fpc/3.3.1//units/*"
注意:CROSSOPT 的選項可以通過在初始構建后運行“ppcross$CPU”來獲得,不帶參數:
~/fpc-src $ ./compiler/ppcross68k -ic 68000 68020 68040 68060 ISAA ISAA+ ISAB ISAC CFV4E ~/fpc-src $ ./compiler/ppcross68k -if SOFT LIBGCC 68881 COLDFIRE ~/fpc-src $ ./compiler/ppcross68k -ia DEFAULT ~/fpc-src $
6. 將目標編譯器復制到交叉編譯器的目錄下:
~/fpc-src $ cp -av compiler/ppc68k /home/glaubitz/fpc-m68k/lib/fpc/3.3.1/
7. 對目標編譯器進行 tar 運算,以將其傳輸到目標計算機:
~/fpc-src $ cd
$ tar czf fpc-m68k.tgz /home/glaubitz/fpc-m68k
在目標計算機上
1. 從 Gitlab下載FPC:
$ git https://gitlab.com/freepascal.org/fpc/source.git fpc-src
2. 解壓交叉編譯的目標編譯器:
$ tar xf fpc-m68k.tgz
3. 使用自舉的 FPC 構建 FPC:
$ make FPC=/home/glaubitz/fpc-m68k/lib/fpc/3.3.1/ppcm68k FPCDIR=/home/glaubitz/fpc-m68k/lib/fpc/3.3.1/ OVERRIDEVERSIONCHECK=1 all
4. 安裝新建的 FPC:
$ make FPC=/home/glaubitz/fpc-m68k/lib/fpc/3.3.1/ppcm68k FPCDIR=/home/glaubitz/fpc-m68k/lib/fpc/3.3.1/ OVERRIDEVERSIONCHECK=1 install INSTALL_PREFIX=/home/glaubitz/fpc CPU_TARGET=m68k
然后跳到創建 Debian 軟件包
使用預編譯的二進制文件
1. 從 ftp://ftp.freepascal.org/pub/fpc/dist/ 下載適用于您的架構的二進制文件(選擇最新版本,然后選擇您的目標)。
$ wget --no-check-certificate https://downloads.sourceforge.net/project/freepascal/Linux/3.0.2/fpc-3.0.2.mipsel-linux.tar
2. 提取 tarball
$ tar xf fpc-3.0.2.mipsel-linux.tar
3. 運行 install.sh 將 fpc 安裝到您的主目錄或 /usr/local 中(后者需要 root 權限)
$ cd fpc-3.0.2.mipsel-linux $ ./install.sh
創建 Debian 軟件包
# export PATH=$PATH:/home/glaubitz/fpc-3.0.2/bin/:/home/glaubitz/fpc-3.0.2/lib/fpc/3.0.2/ # apt-get install devscripts dh-exec diff -Nru old/fpc-3.0.2+dfsg/debian/rules new/fpc-3.0.2+dfsg/debian/rules --- old/fpc-3.0.2+dfsg/debian/rules 2017-04-09 11:44:58.000000000 +0200 +++ new/fpc-3.0.2+dfsg/debian/rules 2017-05-30 23:52:09.875391597 +0200 @@ -57,6 +57,9 @@ ifeq ($(CPU_TARGET),sparc) PPSUF=sparc endif +ifeq ($(CPU_TARGET),mipsel) +PPSUF=mipsel +endif ifneq ($(CPU_SOURCE),$(CPU_TARGET)) PPPRE=ppcross diff -Nru old/fpc-3.0.2+dfsg/debian/fp-units-gfx.install.in new/fpc-3.0.2+dfsg/debian/fp-units-gfx.install.in --- old/fpc-3.0.2+dfsg/debian/fp-units-gfx.install.in 2017-04-09 11:44:58.000000000 +0200 +++ new/fpc-3.0.2+dfsg/debian/fp-units-gfx.install.in 2017-05-30 23:44:24.519488161 +0200 @@ -1,11 +1,11 @@ #! /usr/bin/dh-exec usr/lib/fpc/*/*/*/ggi* -usr/lib/fpc/*/*/*/graph* [!linux-arm64 !linux-armel !linux-armhf !linux-ppc64] +usr/lib/fpc/*/*/*/graph* [!linux-arm64 !linux-armel !linux-armhf !linux-mipsel !linux-ppc64] usr/lib/fpc/*/*/*/hermes* usr/lib/fpc/*/*/*/imagemagick* usr/lib/fpc/*/*/*/libgd* usr/lib/fpc/*/*/*/libpng* -usr/lib/fpc/*/*/*/opencl* [!freebsd-any !linux-arm64 !linux-armel !linux-armhf !linux-powerpc !linux-ppc64] +usr/lib/fpc/*/*/*/opencl* [!freebsd-any !linux-arm64 !linux-armel !linux-armhf !linux-mipsel !linux-powerpc !linux-ppc64] usr/lib/fpc/*/*/*/opengl* usr/lib/fpc/*/*/*/opengles* usr/lib/fpc/*/*/*/ptc* [!freebsd-any] Description: In order to add support for arm64, we need a man-page Source: upstream Index: fpc/install/man/man1/ppcmipsel.1 =================================================================== --- /dev/null +++ fpc/install/man/man1/ppcmipsel.1 @@ -0,0 +1,33 @@ +.TH ppcmipsel 1 "30 may 1999" "Free Pascal" "Free Pascal Compiler" +.SH NAME +ppcmipsel \- Free Pascal Compiler (FPC) binary, name derived +from Portable Pascal Compiler + +.SH SYNOPSIS + +.B "ppcmipsel [options] [sourcefile]" +.BR + +.SH DESCRIPTION +This binary is the back-end binary of the +.I Free Pascal Compiler (FPC) +which is a +.I Turbo Pascal +and +.I Delphi (7.0) +compatible standalone (non GCC frontend) multitarget Pascal compiler. + +This binary should not be called directly, instead the +.B fpc +program should be used instead. +It will choose the right back-end for compiling units for the requested platforms. + +.SH OPTIONS + +For a complete list of all supported command-line options, see the +.BR fpc (1) +manual page. + +.SH SEE ALSO +.BR fpc (1) + # dpkg-buildpackage -d -nc -B # debsign <changes file> # dput ftp-master *changes

浙公網安備 33010602011771號