Difference between revisions of "fpcup"

From Free Pascal wiki
Jump to navigationJump to search
m (Wait with dos crosscomp until it works ;))
(Undo revision 73642 by BigChimp (talk))
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