Difference between revisions of "fpcup"
m (Wait with dos crosscomp until it works ;)) |
|||
Line 12: | Line 12: | ||
== Tips == | == Tips == | ||
+ | === DOS crosscompiler === | ||
+ | Using 32 bit fpcup.exe on Windows, once you have set up a regular FPC trunk/2.7.1 compiler, you can add a [[DOS]] cross compiler. Note: the DOS cross compiler is still in development. | ||
+ | |||
+ | Open your settings file or add a new file, settings.ini: | ||
+ | <syntaxhighlight lang="ini"> | ||
+ | [dos] | ||
+ | ; dos cross compiler | ||
+ | ; a full fpcup run must have been done before | ||
+ | ; please adjust paths etc | ||
+ | fpcdir=c:\development\fpctrunk | ||
+ | fpcurl=http://svn.freepascal.org/svn/fpc/trunk | ||
+ | fpcopt="" | ||
+ | fpcuplinkname="" | ||
+ | lazlinkname="" | ||
+ | binutilsdir=c:\development\fpcbootstrap | ||
+ | fpcbootstrapdir=c:\development\fpcbootstrap | ||
+ | cputarget=i8086 | ||
+ | ostarget=msdos | ||
+ | verbose=0 | ||
+ | ; We only need an FPC here; assume FPC has been updated by regular update | ||
+ | only=FPCBuildOnly | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Then generate the cross compiler with | ||
+ | <syntaxhighlight lang="dos"> | ||
+ | fpcup --inifile=settings.ini --inisection=dos | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Now you can run a test compile, compiling a file test.pas with | ||
+ | <syntaxhighlight lang="dos"> | ||
+ | fpc -Pi8086 -TMSDOS test.pas | ||
+ | </syntaxhighlight> | ||
+ | (your fpc.cfg will have been modified to use DOS medium memory model, smartlinking etc) | ||
+ | |||
=== Avoid lengthy lcl.chm documentation generation === | === Avoid lengthy lcl.chm documentation generation === | ||
By default, fpcup tries to compile the <code>$(lazarusdir)\docs\chm\lcl.chm</code> Lazarus help file every day or so. This can take a long time due to the fpdoc being quite slow. | By default, fpcup tries to compile the <code>$(lazarusdir)\docs\chm\lcl.chm</code> Lazarus help file every day or so. This can take a long time due to the fpdoc being quite slow. |
Revision as of 09:38, 23 October 2013
About
fpcup is a tool that automates running a subversion client to build FPC and/or Lazarus in a self-contained directory structure.
On Windows, it can also serve as a "bare metal" installer: it can download a subversion client, binutils (make.exe etc).
fpcup allows maintaining multiple different FPC/Lazarus combinations.
Documentation
fpcup has a -h option, a readme.txt and fpcup.html with development notes.
To make it easier to get user contributions for documentation/tips, this wiki page has been created. Please feel free to add your own examples etc.
Tips
DOS crosscompiler
Using 32 bit fpcup.exe on Windows, once you have set up a regular FPC trunk/2.7.1 compiler, you can add a DOS cross compiler. Note: the DOS cross compiler is still in development.
Open your settings file or add a new file, settings.ini:
[dos]
; dos cross compiler
; a full fpcup run must have been done before
; please adjust paths etc
fpcdir=c:\development\fpctrunk
fpcurl=http://svn.freepascal.org/svn/fpc/trunk
fpcopt=""
fpcuplinkname=""
lazlinkname=""
binutilsdir=c:\development\fpcbootstrap
fpcbootstrapdir=c:\development\fpcbootstrap
cputarget=i8086
ostarget=msdos
verbose=0
; We only need an FPC here; assume FPC has been updated by regular update
only=FPCBuildOnly
Then generate the cross compiler with
fpcup --inifile=settings.ini --inisection=dos
Now you can run a test compile, compiling a file test.pas with
fpc -Pi8086 -TMSDOS test.pas
(your fpc.cfg will have been modified to use DOS medium memory model, smartlinking etc)
Avoid lengthy lcl.chm documentation generation
By default, fpcup tries to compile the $(lazarusdir)\docs\chm\lcl.chm
Lazarus help file every day or so. This can take a long time due to the fpdoc being quite slow.
You can avoid compiling lcl.chm by generating it one time (or copying over an existing file) and making the file read-only.
Download
The official site is at: https://bitbucket.org/reiniero/fpcup/downloads
License
fpcup is open source software released under the LGPL with linking exception (same as FreePascal/LCL).
Support and bug reporting
Please post support requests on the forum (e.g. in the thread dedicated to FPCUP in the Third-Party announcements section)
You can report bugs on the forum or directly on the issue tracker: https://bitbucket.org/reiniero/fpcup/issues?status=new&status=open
Current progress
- Support for Windows 2000-7 (untested, probably works on 8). Bare metal install currently needs MS Visual C++ runtime for the subversion client.
- Linux x86: works
- Linux x64: works
- OSX 10.?: experimental support
- FreeBSD 9: lightly tested; seems to work
Changelog
Please see the fpcup forum thread dedicated in the Third-Party announcements section and the Mercurial commit log in https://bitbucket.org/reiniero/fpcup/commits/all