Difference between revisions of "Free Pascal Wiki"

From Freepascal Amiga wiki
Jump to: navigation, search
(Initial contents)
 
(Added and corrected some links + removed some typo's. Some small additions/changes in text as well.)
Line 13: Line 13:
 
Please note that all information detailed here is specific to Free Pascal 3.x and above, and does not apply to the older existing AROS Free Pascal 1.x port, nor does it apply to the older 0.99.x and 1.0.x versions of Free Pascal for classic Amiga/68k.
 
Please note that all information detailed here is specific to Free Pascal 3.x and above, and does not apply to the older existing AROS Free Pascal 1.x port, nor does it apply to the older 0.99.x and 1.0.x versions of Free Pascal for classic Amiga/68k.
  
However, this port is very closely related to the recent supported classic Amiga/68k and MorphOS platforms as they share some of the same code with AROS in an attempt to unify the support in Free Pascal for these platforms.
+
However, this port is very closely related to the recent supported classic [http://wiki.freepascal.org/Amiga Amiga/m68k] and [http://wiki.freepascal.org/MorphOS MorphOS] platforms as they share some of the same code with AROS in an attempt to unify the support in Free Pascal for these platforms.
  
  
Line 27: Line 27:
 
=== History ===
 
=== History ===
  
An initial AROS contribution regarding a port of Free Pascal version 1.x was done by sasu in 2002, which was (partially) based on the support units for the Amiga 68k port of Free Pascal which in its own turn was mostly the work of Nils Sjoholm. Further development of this port ceased quickly thereafter.
+
An initial AROS contribution regarding a port of Free Pascal version 1.x was done by sasu in 2002, which was (partially) based on the support units for the Amiga m68k port of Free Pascal which in its own turn was mostly the work of Nils Sjoholm. Further development of this port for AROS ceased quickly thereafter.
  
A fresh new port based on Free Pascal 2.5.1 was anounced by ALB42 in the first half of 2011, which was again (partially) based on the Amiga 68k support units from Nils Sjoholm.
+
A fresh new port based on Free Pascal 2.5.1 was announced by ALB42 in the first half of 2011, which was again (partially) based on the Amiga 68k support units from Nils Sjoholm.
  
In xxxx, Karoly, better known for his ports of Free pascal to MorphOS and classic Amiga(OS), offered a helping hand. In 2014 this led to the start of integrating the supported 3 Amiganoid systems into the FPC 2.7.1 trunk.
+
In xxxx, Karoly, better known for his ports of Free Pascal to MorphOS and classic Amiga(OS), offered a helping hand. In 2014 this led to the start of integrating the supported 3 Amiganoid systems into the FPC 2.7.1 trunk.
  
 
As of FPC 3.0 release, AROS/i386 is officially supported as a target by Free Pascal.
 
As of FPC 3.0 release, AROS/i386 is officially supported as a target by Free Pascal.
Line 38: Line 38:
 
==== Important dates ====
 
==== Important dates ====
  
* 2002-02-19 sasu ported Free Pascal 1.1 to AROS and commited his work into AROS Contrib repo [http://repo.or.cz/w/AROS-Contrib.git/commit/e8bcb3742cda85171c94be7848d393cd8eb5cfd1]
+
* 2002-02-19 - sasu ported Free Pascal 1.1 to AROS and commited his work into AROS Contrib repo [http://repo.or.cz/w/AROS-Contrib.git/commit/e8bcb3742cda85171c94be7848d393cd8eb5cfd1]
* 2007-01-02 Not being actively developed and for saving build time and space, Free Pascal was removed from AROS Contrib. [http://repo.or.cz/w/AROS-Contrib.git/commit/800251545765329f94083c3f5cc90c5d11f49fcd]
+
* 2007-01-02 - Not being actively developed and for saving build time and space, Free Pascal was removed from AROS Contrib. [http://repo.or.cz/w/AROS-Contrib.git/commit/800251545765329f94083c3f5cc90c5d11f49fcd]
* 2011-04-18 ALB42 announced to have been working on a port of FPC 2.5 for AROS. [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=55185#forumpost55185]
+
* 2011-04-18 - ALB42 announced to have been working on a port of FPC 2.5 for AROS. [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=55185#forumpost55185]
* 2011-05-30 ALB42 makes his initial work on his port of Free Pascal 2.5.1 for AROS available to public. [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=56221#forumpost56221]
+
* 2011-05-30 - ALB42 makes his initial work on his port of Free Pascal 2.5.1 for AROS available to public. [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=56221#forumpost56221]
* 2011-06-18 ALB42 releases his initial progress on a native LCL implementation for AROS to public. [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=56793#forumpost56793]
+
* 2011-06-18 - ALB42 releases his initial progress on a native LCL implementation for AROS to public. [http://aros-exec.org/modules/newbb/viewtopic.php?post_id=56793#forumpost56793]
* 2011-08-06 With commit of revision r18107 by Florian, AROS received its own branch in FPC sources. [http://svn.freepascal.org/cgi-bin/viewvc.cgi/branches/aros/?pathrev=18107]
+
* 2011-08-06 - With commit of revision r18107 by Florian, AROS received its own branch in FPC sources. [http://svn.freepascal.org/cgi-bin/viewvc.cgi/branches/aros/?pathrev=18107]
 
* more dates currently missing
 
* more dates currently missing
  
Line 49: Line 49:
 
=== Status ===
 
=== Status ===
  
* Most FPC rtl functions are supported
+
* Most FPC RTL functions are supported
* AROS ABIv1 support is not implemented yet, see classic Amiga for now. (missing link)
+
* AROS ABIv1 support is not implemented yet, see [http://wiki.freepascal.org/Amiga classic Amiga/68k] for now.
* FPC sources are as much source compatible to AmigaOS 68k as possible, and could therefor be cross-compiled for Amiga 68k (if not using AROS specific functionality).
+
* FPC sources are as much source compatible to Amiga/68k as possible, and could therefor be (cross-)compiled for Amiga/68k (if not using AROS specific functionality).
 
* The (cross) compiler is available for multiple platforms, including AROS/i386, Windows32/64 and linux32/64
 
* The (cross) compiler is available for multiple platforms, including AROS/i386, Windows32/64 and linux32/64
 
* AROS Binutils are available
 
* AROS Binutils are available
Line 69: Line 69:
  
 
Specific defines for AROS are
 
Specific defines for AROS are
- AROS
+
* AROS - To identify AROS exclusively
- LCL_MUI  (use LCL/MUI widgetset implementation), if omitted use fpGUI//LCL implemntation
+
* HASAMIGA - To identify any Amiga-like system (Amiga/m68k, MorphOS and AROS), similar to HASUNIX which is defined across Unix systems.
 +
* LCL_MUI  (use LCL/MUI widgetset implementation), if omitted use fpGUI//LCL implementation.
 +
 
  
 
''Paths''
 
''Paths''
  
Every operating system derived from or based upon classic AmigaOS, is neither Windows nor Linux. This results in paths being treated differently. Amiga/AROS/MorphOS uses the format "Drive Name:Directory 1/Subdirectory/Name of a file.extention" (without the quotes). Please keep this in mind when developing software that is intended to run cross-platform.
+
Every operating system derived from or based upon classic Amiga/m68k, is neither Windows nor Linux. This results in paths being treated differently. Amiga/AROS/MorphOS uses the format "Drive Name:Directory 1/Subdirectory/Name of a file.extention" (without the quotes). Please keep this in mind when developing software that is intended to run cross-platform.
  
  
Line 89: Line 91:
 
=== Documentation/Reference ===
 
=== Documentation/Reference ===
  
* AROS homepage [http://www.aros.org]
+
* [http://www.aros.org AROS homepage]
* AROS wikibook [https://en.wikibooks.org/wiki/Aros]
+
* [https://en.wikibooks.org/wiki/Aros AROS wikibook]
* AROS Support forums [http://www.aros-exec.org]
+
* [http://www.aros-exec.org AROS Support forums]
* Free Pascal for AROS wiki [http://fpcaroswiki.alb42.de]
+
* [http://fpcaroswiki.alb42.de Free Pascal for AROS wiki]
 
* Free Pascal for AROS FAQ (Short Introduction for those unfamiliar with AROS). (page needs verification and wiki-integration before adding link).
 
* Free Pascal for AROS FAQ (Short Introduction for those unfamiliar with AROS). (page needs verification and wiki-integration before adding link).
* Free Pascal for AROS Online reference [http://www.alb42.de/fpc-docu/] (not up to date, we could use some help)
+
* [http://www.alb42.de/fpc-docu/ Free Pascal for AROS Online reference] (not up to date, we could use some help)
  
 
== Technical information ==
 
== Technical information ==

Revision as of 06:43, 23 June 2015

Note

This is a basic initial idea for the official Free Pascal online wiki regarding the AROS port. Please feel free to comment and/or improve, especially on the developer and technical paragraphs.

TODO: add more information, this is merely initial commit

NOTE: if wanted we can use this page for editing in which case i'm willing to keep it in sync with fpc-wiki if/when going online.

Please note that all information detailed here is specific to Free Pascal 3.x and above, and does not apply to the older existing AROS Free Pascal 1.x port, nor does it apply to the older 0.99.x and 1.0.x versions of Free Pascal for classic Amiga/68k.

However, this port is very closely related to the recent supported classic Amiga/m68k and MorphOS platforms as they share some of the same code with AROS in an attempt to unify the support in Free Pascal for these platforms.


AROS Port

This port is aimed at AROS (AROS Research Operating System), the open source implementation of the "classic Amiga operating system", which runs on modern processors like x86/x64/arm and PPC.

Because AROS is API compatible with Amiga (and binary compatible with Amiga 68k), there is much similarity when addressing Classic Amiga, MorphOS and AROS (all of which are supported by Free Pascal).

Free Pascal for AROS has its own Wiki page here (under slow and continues development).


History

An initial AROS contribution regarding a port of Free Pascal version 1.x was done by sasu in 2002, which was (partially) based on the support units for the Amiga m68k port of Free Pascal which in its own turn was mostly the work of Nils Sjoholm. Further development of this port for AROS ceased quickly thereafter.

A fresh new port based on Free Pascal 2.5.1 was announced by ALB42 in the first half of 2011, which was again (partially) based on the Amiga 68k support units from Nils Sjoholm.

In xxxx, Karoly, better known for his ports of Free Pascal to MorphOS and classic Amiga(OS), offered a helping hand. In 2014 this led to the start of integrating the supported 3 Amiganoid systems into the FPC 2.7.1 trunk.

As of FPC 3.0 release, AROS/i386 is officially supported as a target by Free Pascal.


Important dates

  • 2002-02-19 - sasu ported Free Pascal 1.1 to AROS and commited his work into AROS Contrib repo [1]
  • 2007-01-02 - Not being actively developed and for saving build time and space, Free Pascal was removed from AROS Contrib. [2]
  • 2011-04-18 - ALB42 announced to have been working on a port of FPC 2.5 for AROS. [3]
  • 2011-05-30 - ALB42 makes his initial work on his port of Free Pascal 2.5.1 for AROS available to public. [4]
  • 2011-06-18 - ALB42 releases his initial progress on a native LCL implementation for AROS to public. [5]
  • 2011-08-06 - With commit of revision r18107 by Florian, AROS received its own branch in FPC sources. [6]
  • more dates currently missing


Status

  • Most FPC RTL functions are supported
  • AROS ABIv1 support is not implemented yet, see classic Amiga/68k for now.
  • FPC sources are as much source compatible to Amiga/68k as possible, and could therefor be (cross-)compiled for Amiga/68k (if not using AROS specific functionality).
  • The (cross) compiler is available for multiple platforms, including AROS/i386, Windows32/64 and linux32/64
  • AROS Binutils are available
  • Threads are not fully supported yet
  • Executeprocess is not supported yet
  • Support for fpGUI (native and LCL) was added by ALB42 in 2014 (working partially, in development)
  • Support for Lazarus/MUI widgets was (re)started in 2014 by ALB42 (currently in early development, but very usable).

More elaborating status pages can be viewed on the Free Pascal for AROS wiki. (link is missing)


Port Notes

The current (cross) compiler is able to create AROS executables for AROS/i386 (abiv0).

Defines

Specific defines for AROS are

  • AROS - To identify AROS exclusively
  • HASAMIGA - To identify any Amiga-like system (Amiga/m68k, MorphOS and AROS), similar to HASUNIX which is defined across Unix systems.
  • LCL_MUI (use LCL/MUI widgetset implementation), if omitted use fpGUI//LCL implementation.


Paths

Every operating system derived from or based upon classic Amiga/m68k, is neither Windows nor Linux. This results in paths being treated differently. Amiga/AROS/MorphOS uses the format "Drive Name:Directory 1/Subdirectory/Name of a file.extention" (without the quotes). Please keep this in mind when developing software that is intended to run cross-platform.


Requirements to start developing for AROS

  • An AROS installation in case testing of the executables is required.
  • Free Pascal for AROS, or (cross)compiler for a supported platform (Windows, Linux, Others ?).
  • The AROS binutils (standard installed by most distros)
  • No other dependencies required, but for completeness the AROS NDK.

Native development and/or testing executables is possible by installing AROS into a virtual machine, running AROS hosted (as single application) under Linux/Windows or on a dedicated AROS machine. All of which require minimal i386 processor.


Documentation/Reference

Technical information

Compiling the compiler from source

Developer information