Return to site

Free Compiler For Mac Os X

broken image


Welcome to the FreePascal on the Macintosh page. Here is information especially for you who want to write a program for the Macintosh.

  1. Free Fortran Compiler For Mac Os X
  2. Free Compiler For Windows 10
  3. Gcc Compiler For Mac Os X Free Download
  4. Mac Os Compiler

News:

Free Pascal 2.0 for Mac OS X is the current release. It should at least work on Mac OS X 10.1 and higher. It requires that you have installed XCode from Apple, to have assembler, linker and make tools available to fpc. For older versions of Mac OS X you should install Apple Development Tools instead. The Xcode IDE would be my first choice: As you own OS X you already have it, so it's free and it uses the clang compiler frontend with the LLVM compiler backend (currently probably the best compiler suite for C/C) which are also free. 16.2K views View 5 Upvoters. Free download OpenCobolIDE OpenCobolIDE for Mac OS X. OpenCobolIDE is a simple and lightweight cobol IDE based on the GnuCobol compiler. A free COBOL compiler GnuCOBOL (formerly OpenCOBOL) is a free, modern COBOL compiler. GnuCOBOL implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014 standards and X /Open COBOL, as well as many extensions included in other COBOL compilers (IBM COBOL, MicroFocus COBOL, ACUCOBOL-GT and others).

But Xcode is free, powerful and turns out to be amazingly useful for the student with a Mac. All you need is a (free) AppleID and then you can download it from the Mac App Store found in macOS.

2009-02-09:

The download statistics indicate that the snapshots below are still downloaded a lot. Note that all fixes from those snapshots are also in the official release of FPC 2.2.2 (and will be also in later versions, when they become available), which was released in August 2008. Since FPC 2.2.2 also contains many additional fixes, we recommend you to use that version. It is available from the regular download pages.

2007-11-14:

There are some errors in the new linker shipped with Xcode 3.0/Mac OS X 10.5. A detailed overview was posted to the fpc-pascal mailing list. We have worked around most of those issues and created (stable) development snapshots for both PowerPC and Intel. These are intended to be installed on top of the 2.2.0 release version. Future releases will have these fixes incorporated.

One linker bug cannot be completely worked around in the compiler, which is related to the Stabs debugging format. For this reason, we recommend to switch to the Dwarf debugging format on Mac OS X 10.5. On the command line, you can do this by using -gw instead of -g to generate debugging information. In the Xcode projects, add -gw at the end of the FPC_SPECIFIC_OPTIONS project setting for the Debug configuration.

2006-08-27:
Regular snapshots of FPC 2.1.1 (both for PowerPC and for Intel - the latterdenoted as i386) are now generated by and available from the Lazarus team.
If you only need the compiler (to either use it from the command line or from Xcode),you only have to download and install the 'fpc' package.
2005-12-18:
Version 2.0.2 that was released a few weeks ago has all fixes and improvements of the 2.1.1 snapshot that was here (like Mac Pascal style objects and creationof dynamic libraries). Additionally, it doesn't suffer from the installationproblems the 2.1.1 snapshot installer had. Get the release here.
2005-07-23:
The 2.1.1 snapshot that was here is no longer available.
If you really need to be up to date with FPC,please consider using Subversion, and build the compiler by your self.
Some changes:
  • No more '_main' symbol in the system unit (so can link with C main programs)
  • Shared library creation support under Mac OS X
  • Several bugfixes related to overflow checking on PPC
2005-06-29:
There is now a wiki page covering porting issues, from traditional mac pascals to FPC.
2005-06-21:
A FPC 2.1.1 snapshot is available here (10.8 MB, does not include the PDF documentation). It includes:
  • Support for Macintosh Object Pascal in Macpas mode (includes support for mixing in Delphi-style OOP programming in Macpas mode, except that you have to use 'object' instead of 'class' everywhere -- all occurrences of 'class' are simply internally replaced by the _OBJECT compiler token)
  • Fixed bug which caused stack corruption in procedures receiving floating point parameters and parameters on the stack (only if the caller side was compiled by FPC)
  • Fixed bug in overflow checking of integer operations (some calculations were buggy if overflow checking is turned on, which is the case in the default development building style of Xcode if you use the integration kit)
  • Fixed bug in division of unsigned numbers > $7fffffff by a power of 2
Should you desire to do so, you can switch back to 2.0 by simplyinstalling the 2.0 package again.
2005-05-15:
At last !!!!! Free Pascal 2.0 is released for Mac OS X and classic Mac OS,as well as for other targets.
This means Free Pascal for the mac is not considered beta anymore.Get it on one of the mirror download sites.

Targets on the Macintosh:

Target / Processor

Status

Remark

Contact

final

For Mac OS X

final

Target Mac OS means classic Mac OS, up to System 9.x. Although it of course also work in the classic environment in Mac OS X

Mac OS on M68K

not planned

If someone is interrested to contribute, there is a possiblity to implement this target. There is support for MC68000 in the FPC source code, although not updated for a while.

Mac Pascal dialect

The dialect of Pascal supported by popular Pascals on Macintosh is supported in part. Read more here.

Free Pascal 2.0 for Mac OS X is the current release. It should at least work on Mac OS X 10.1 and higher. It requires that you have installed XCode from Apple, to have assembler, linker and make tools available to fpc. For older versions of Mac OS X you should install Apple Development Tools instead. Both can be downloaded for free from Apple, but requires that you register yourself as a member of Apple Developer Connection. Both are also included in the Mac OS X bundle.

To download, go to the Download page, and choose a mirror site near you (to limit net traffic). The documentation is included, but can also be downloaded separatelly. If you want the source code, it has to be downloaded separatelly.

There most recent FPC 2.1.1 snapshot is available here (10.4 MB)with, among others, support for mac style object pascal. See above under NEWS.

Note that the compiler is a unix style program and is run from the Terminal on Mac OS X.

Please report any bugs encountered.

Compiler

Using FPC from XCode

It is possible to use Free Pascal from within XCode (Mac OS X 10.3 is required).Look at the step-by-step instruction of how to download and install the XCode Integration Kit. Thanks to Rolf Jansen for this contribution.

Free Pascal 2.0 for Mac OS is the current release. It will work on latest classic Mac OS (that is 9.2.2) and below, probably down to 7.1.2 (the first Mac OS for PowerPC), and also in the classic compatibility environment on Mac OS X. However it has only been tested on Mac OS 9 and Mac OS X classic environment.

It requires that you have installed Macinstosh Programmers Workshop (MPW) which can be downloaded for free from Apple.

To download, go to the Download page, and choose a mirror site near you (to limit net traffic). The documentation, as well as the source code (if you need it), has to be downloaded separatelly.

Note that the compiler is an MPW tool.

Please report any bugs encountered.

Current status of classic Mac OS

Native FPC compiler (as an MPW tool)

Almost complete

Unit System.pp

Complete

The system unit is implicitly used by every program. Contains basic file and memory handling among others.

Unit Dos.pp

Complete

Contrary to what its name suggests, the DOS unit is cross plattfrom and contains utility routines for file and date handling, beyond that in System.pp. It is reminiscent from Turbo Pascal.

Unit Sysutils.pp

Planned

A moderner alternative to unit DOS, compatible with Delphi.

Unit MacOS

Complete

API to the Macintosh Toolbox

Units strings objpas heaptrc getopts etc

Implemented.

They are target independent.

Other units

Non-existent. Some will be implemented.

Implementation will depend on how important the unit is and if difficulties arise.

Debugging

There is some limited possibilities to debug programs in classic Mac OS. See MPW debugging in the wiki.

As an alternative, you might do the main debugging in a Mac OS X/Darwin version of your program.

There are three major Pascal dialects: Turbo Pascal (extended to Delphi, supported by FreePascal, and partially by Gnu Pascal), Extended Pascal (an ISO standard, supported by Gnu Pascal, DEC Pascal, Prospero Pascal), and the dialect originating from Apple (commonly used in the Mac community, supported by MPW Pascal, Metrowerks Pascal and Think Pascal). We call this dialect Mac Pascal and there is a special language mode for it: MacPas.

Mode MacPas is a compatibility mode. It is probably not possible to mimic the Mac Pascal dialect in detail. So the goal is to implement often used constructs, if this doesn't require too much effort, as well as easy-to-implement constructs.

To use MacPas, add -Mmacpas to the command line or insert the compiler directive {$MODE MACPAS} in the source code.

Note that the mac pascal dialect and mac targets are not interrelated. It is thus possible to write a mac program with the turbo dialect and to write a Windows program with the mac dialect.

The following are supported: Mac compiler directives like $SETC, $IFC, $ELSEC, $ENDC, $J, $Z. Most of the constructs found in interface files, especially Apples Universal Interfaces. Cycle, Leave, Otherwise. More is planned.

More updated info on the Wiki page.

By Olle Raab

For questions and suggestions, we suggest subscribing on our mailing lists , in particular FPC-pascal for questions about using Free Pascal.

Or write to olle.raab@freepascal.org

Latest modified 2005-07-28

English (en)한국어 (ko)русский (ru)

This article applies to macOS only.

See also: Multiplatform Programming Guide


Note: For installation on Apple Silicon/AArch64, please refer to Apple Silicon Support.

Installing Lazarus on a Mac is not particularly difficult but it is critical that you do the install in the correct order. Skipping steps will almost certainly lead to tears. In brief, here is what you need to do:

  1. Download and install Xcode.
  2. Install the global command line tools for Xcode.
  3. Download and install the Free Pascal Compiler (FPC) binaries and the FPC source from the Lazarus IDE file area (Important do this before you install the Lazarus IDE)
  4. Download and install the Lazarus IDE from the Lazarus IDE file area
  5. Configure LLDB - the Apple supplied (and signed) debugger from within the Lazarus IDE.

These steps are explained in more detail below.


  • 1Installation
    • 1.3Step 3: FPC, FPC Source
      • 1.3.2Other FPC Options
    • 1.5Step 5: Configure the Debugger
  • 4Installing non-release versions of the Lazarus IDE
  • 5Installing non-release versions of FPC
  • 6Known issues and solutions
    • 6.2Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier
  • 7Uninstalling Lazarus and Free Pascal

Installation

The detailed instructions assume a recent version of macOS on your Mac, a recent version of Xcode from Apple and a recent version of Lazarus. On the Legacy Information page, you will see older information that may be relevant if you are using older components. You can assist by replacing out of date info, either deleting it, or, if it may help someone working with a legacy project, moving it to the bottom of the page.

In general, this is about using both the Carbon and Cocoa Widget Set. While Carbon was once seen as a little more stable, with the release Lazarus 2.0.8 the 64 bit Cocoa Widget Set has now surpassed Carbon and should be considered seriously for any new projects. Carbon was intentionally (by Apple) limited to 32 bits and you should be aware that it has been removed completely from macOS 10.15 Catalina which only supports 64 bit Cocoa.

Step 1: Download Xcode

You need the Apple Developer tools, which are a part of the Xcode development environment.

Xcode 11.3.1 for use on macOS 10.14 Mojave must now be installed by downloading it from Apple Developer Connection (ADC), which requires free registration. Xcode 11.4.x for use on macOS 10.15 Catalina can be installed from the Mac App store. Note that you must first move any old Xcode versions from the Applications folder into the trash or rename the Xcode app (eg Xcode.app to Xcode_1014.app). You can select which version of Xcode to use with the command line utility xcode-select.

Older systems:

The developer tools can be installed from the original macOS installation disks or a newer copy downloaded from the Apple Developer Connection (ADC), which requires free registration. Download the Xcode file, it will end up in your Downloads directory as a zip file. Click it. It is unarchived into your Downloads directory. You may be happy with it there but maybe not. Other users will see the path to it but be unable to use it. And it is untidy there. So I moved mine and then told xcode-select where it was moved to (in a terminal) -

Step 2: Xcode Command Line Tools

This is shown here as a separate step because it really is a separate step in addition to Step 1. Don't confuse this with the internal Xcode command line tools that the Xcode GUI will tell you are already installed. Lazarus cannot use those Xcode internal command line tools, so do the following (it is quick and easy)-

If you have problems installing using this command line method (e.g. the installer freezes while 'finding Software'), you can also download and install the package by logging in to the Apple Developer Site and downloading and installing the Command Line Tools for Xcode Disk image.

Step 3: FPC, FPC Source

Free

Download and install the Free Pascal Compiler (FPC) binaries and the separate source package. A compatible FPC (and source) must be installed before you install Lazarus. You have a number of options.

Source Forge

Download the Free Pascal Compiler (FPC) binaries and FPC source packages from the Lazarus IDE file area. When you arrive at that file area, choose the correct version of your operating system. The vast majority of Mac users should now choose the 64 bit packages in the Lazarus macOS x86-64 directory. Every Mac computer since late 2006 has been 64 bit capable. The fact that Apple has completely dropped all 32 bit support from macOS 10.15 Catalina (released in October 2019) is another reason to choose the 64 bit packages.

These binary install kits are built by the FPC/Lazarus developers and track formal releases. As these install kits are not approved by Apple, you need to hold down the Control key, click the package and choose Open and confirm you want to install from an Unknown Developer.

You might like to apply a simple and quick test of FPC at this stage - Testing FPC installation.

Other FPC Options

fpcupdeluxe

You could also consider using fpcupdeluxe to install FPC and, perhaps Lazarus.

fink

Alternatively, you can use fink, a package manager for macOS to install FPC. Note at the time of writing (Early 2020) fink offers Lazarus 2.0.6. The extra bonus of fink is easy installation as well as clean removal of a huge number of other open source software packages, including Free Pascal crosscompilers for many processors and systems. The choice for Lazarus is between a Carbon or Cocoa look, a gtk2 look, a Qt4-based and a Qt5-based version:

You will be asked, whether to install a number of dependencies, including the Free Pascal Compiler, the Lazarus sources. Simply hit RETURN at the prompt and go for a coffee. It may take quite some time to build all packages, in particular on older Macs.

After installation, Lazarus can be started from the folder /Applications/Fink/. The actual details of FPC and Lazarus are in subdirectories of /sw

With any Lazarus package from fink, these widget sets are supported for your program on macOS:

carbon (Aqua), cocoa, gtk2, qt4 (Aqua), qt5 (Aqua), nogui, win32, win64 and wince.

If you install FPC from fink, you will be fine downloading Lazarus source and compiling as detailed below. However, its possibly not a good idea to mix fink FPC with the Sourceforge binary install of Lazarus.

MacPorts

MacPorts has also a package description of the cocoa-64 bit version of lazarus 2.0.6. Install it with:

Step 4: Install the Lazarus IDE

Download and install the Lazarus IDE from the Lazarus IDE file area. When you arrive at that file area, choose the correct version of your operating system. The vast majority of Mac users should now choose the 64 bit packages in the Lazarus macOS x86-64 directory. Every Mac computer since late 2006 has been 64 bit capable. The fact that Apple has completely dropped all 32 bit support from macOS 10.15 Catalina (released in October 2019) is another reason to choose the 64 bit packages.

Step 5: Configure the Debugger

In versions of Lazarus 1.8.4 and earlier, you needed to use gdb as a debugger, slow to install and hard to sign. Since Lazarus 2.0.0 you can (and should) use lldb, a debugger provided by Apple, no signing required.

Assuming you have installed what is necessary and started Lazarus, all that remains is configuring the debugger. If you don't do this now, Lazarus will try to use gdb and fail.

First, click Tools > Options > Debugger. Top right of the window now open has a label, 'Debugger type and path', you must set both. Select 'LLDB debugger (with fpdebug) (Beta)'.

If it is not shown in the selection list, see Installing LazDebuggerFpLLdb below. The XCode command line tools install lldb to the /usr/bin directory. Save those settings and you can now try to compile the almost nothing program that Lazarus has kindly provided for you (click the small green triangle near top left).

Next you see a puzzling question, see image below. Choose a 'Debug Format' from one of the offered -

Martin_fr, the person who has given us this interface between Lazarus and lldb, suggests you use 'dwarf3' . Then, you need to enter your password, a macOS cuteness because one application appears to be interfering with another. In this case, that's fine!

When running the debugger from time to time you will be asked for your password to allow debugging. This is for your own safety.

Extra Information on using lldb

A great deal of information about using lldb appears in this forum thread. Here are a few gems, again, from Martin_fr:

In the unexpected case of problems, it may be worth trying 'dwarf with sets' instead of just 'dwarf3'.

Free Compiler For Mac Os X

The 'debug info' setting only affects the units directly in your project. However, units in packages may have debug info too. This can be:

  • set per package
  • for many, but not all packages in the menu Tools > Configure 'Build Lazarus'
  • Project > Project Options > Additions and Overrides

If you change settings for a package, you might want to check which package you expect to step into when debugging. Packages you do not step into, do not need debug info.

If you use a type from a package (such as TForm from LCL) it is enough that your unit (in which you declare the variable / must declare and use a variable to include the type) has debug info. Reducing the number of packages with debug info (including those that default to have debug info), can shorten the debuggers start-up time.

Also it may be worth comparing (it has not been tested) the debuggers start up time for the same settings, only changing the checkbox 'use external debug info'.

This needs to be only set in your project. If set in your project it will affect all packages. (If set in a package it will do nothing / at least should..)

Installing LazDebuggerFpLLdb

If you installed from source and used the bigide parameter to make, then the correct debugger will be installed, as a package, and ready to go. If, however, you installed in another way, it may, or may not be there. From the main IDE screen, click Packages->Install/UninstallPackages. Shown is two lists of packages, the list on the left is installed, the list on the right is available to install. Look for LazDebuggerFpLldb (exactly that, there are some similar named but less suitable packages). If it is on the right hand side, click it, press 'Install Selection' and then 'Save and rebuild IDE'. This will take a little time, the IDE will shutdown and restart and all should be well. Now jump back up the page and continue configuring the debugger.

Cocoa 64 bit vs Carbon 32 bit

Lazarus using the Apple 64 bit Cocoa framework should now meet the needs of users. The Apple 32 bit Carbon framework works pretty much as expected but you are advised to try Cocoa first, because Apple has dropped support for 32 bit applications and the Carbon framework from macOS 10.15 Catalina which was released in October 2019.

Alternatives include QT and GTK2+, both requiring additional libraries and GTK2+ on the Mac appears to get little attention these days. QT on the Mac does have some strong supporters on the Lazarus forum.

Cocoa is now undeniably the future on the Mac. It is possible to build an all Cocoa version of Lazarus with release 2.0.0 and later. It is also possible to make a Carbon install of Lazarus (unless you are running macOS 10.15 Catalina or later) and use that to generate Cocoa 64 bit binaries.

In the Carbon or Cocoa IDE, you need to set the Target to the 64 bit processor and select the Cocoa Widget set:

  • Open your project with Lazarus and from the menu select Project > Project Options
  • In the 'Config and Target' panel set the 'Target CPU family' to be 'x86_64'
  • In the 'Additions and Overrides' panel click on 'Set LCLWidgetType' pulldown and set the value to 'Cocoa'
  • For some reason Lazarus sets the compiler to '/usr/local/bin/ppc386' - which results in 32 bit applications. Make sure under Tools > Options that 'Compiler Executable' is set to '/usr/local/bin/fpc' to get 64 bit applications.
  • Now compile your project - and please feed back any problems you experience.

Compatibility

Not every combination of Lazarus and Free Pascal is compatible with every installation of macOS. Please refer to the following table in order to find the correct version for your development environment:

Lazarus Compatibility Matrix
Lazarus 1.6.0Lazarus 1.6.2Lazarus 1.6.4Lazarus 1.8.xLazarus 2.0.yLazarus 2.0.8Lazarus 2.0.10
FPC 3.0.0FPC 3.0.2FPC 3.0.4FPC 3.2.0
PPC processors
Mac OS X 10.4 (Tiger)IncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatible
Mac OS X 10.5 (Leopard)Not testedNot testedNot testedNot testedIncompatibleIncompatibleIncompatible
Intel processors
Mac OS X 10.4 (Tiger)IncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatible
Mac OS X 10.5 (Leopard)Not testedNot testedNot testedNot testedCompatible^Not testedCompatible^**†
Mac OS X 10.6 (Snow Leopard)CompatibleCompatibleCompatibleCompatibleCompatible*Not testedNot tested
Mac OS X 10.7 (Lion)CompatibleCompatibleCompatibleCompatibleNot testedNot testedNot tested
OS X 10.8 (Mountain Lion)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible**#Compatible**#
OS X 10.9 (Mavericks)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible**†Compatible**†
OS X 10.10 (Yosemite)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible**†Compatible**†
OS X 10.11 (El Capitan)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible***†Compatible†
macOS 10.12 (Sierra)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible***†Compatible†
macOS 10.13 (High Sierra)Not testedNot testedCompatibleNot testedCompatibleCompatible***†Compatible†
macOS 10.14 (Mojave)Not testedNot testedNot testedNot testedCompatibleCompatible***†Compatible†
macOS 10.15 (Catalina)Not testedNot testedNot testedNot testedCompatibleCompatible***†Compatible†
macOS 11.0 (Big Sur Dev Beta 6)Not testedNot testedNot testedNot testedCompatibleCompatible***†Compatible†

^ Carbon interface compiles - Cocoa does not.

* Restrictions apply to debugging with gdb.

** See Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier for instructions.

*** See Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+ for instructions.

# Cannot run with/without debugging in the IDE. Can run compiled application outside of the IDE. See Issue #37324

† Cannot run without debugging in the IDE. Can run compiled application outside of the IDE. See Lazarus IDE - Unable to 'run without debugging' for workaround. See Issue #36780.

x = 0, 2 or 4; y = 0, 2, 4, 6, 8 or 10

Installing non-release versions of the Lazarus IDE

Lazarus Fixes 2.0

There are a number of reasons why you may be better off using a non-release version of Lazarus, specifically, fixes_2_0. Particularly:

  • You almost certainly need to target Cocoa, macOS 10.15 Catalina does not support 32 bit Carbon at all.
  • The Cocoa widget set has steadily improved, and the lldb debugger interface has rapidly improved, since even v2.0.0.
  • Fixes_2_0 is a safer and more stable option than trunk, but still gets the new features much faster than the release version.

Precompiled binaries based on fixes_2_0 are not available from SourceForge but can be obtained from fpcupdeluxe. But here we will discuss downloading source and building. A little slow initially but very reliable and a great test of your compiler install ! You will need git which is included in all recent versions of the Xcode command line tools which you should have already installed (see Xcode Command Line Tools above).

About svn or git: The XCode 11.4 command line tools on macOS 10.15 no longer install svn, only git. You can install subversion via fink, ports or brew.

Create a directory for Lazarus and download the current fixes version:

Using git:

Using svn:

Depending on your internet connection and server congestion this takes a few seconds or a couple of minutes. Then build it:

  • Note I pass a parameter to use a config directory that is based on the name of the actual install directory. It makes some scripting easy.
  • On older macOS supporting 32bit applications, replace above make line with 'make LCL_PLATFORM=carbon CPU_TARGET=i386 bigide ' and setup your project as mentioned in the Carbon and Cocoa section below.

You might like to put a small script in your $HOME/bin directory and even set a path to it (very UNIX!)

To keep your fixes_2_0 installation up to date is as easy as:

Using git:

Using svn:

Lazarus Trunk

Precompiled binaries based on trunk are not available from SourceForge, so here's how to download the trunk source using git and build the Lazarus IDE. You will need git which is included in all recent versions of the Xcode command line tools which you should have already installed (see Xcode Command Line Tools above).

Using git:

Using svn:

To update your existing trunk source.

Using git:

Using svn:

What does the bigide make argument do?

The bigidemake argument adds a bunch of packages to Lazarus that many find useful and accent dow without. The packages that are added are:

  • cairocanvas
  • chmhelp
  • datetimectrls
  • externhelp
  • fpcunit
  • fpdebug
  • instantfpc
  • jcf2
  • lazcontrols
  • lazdebuggers
  • lclextensions
  • leakview
  • macroscript
  • memds
  • onlinepackagemanager
  • pas2js
  • PascalScript
  • printers
  • projecttemplates
  • rtticontrols
  • sdf
  • sqldb
  • synedit
  • tachart
  • tdbf
  • todolist
  • turbopower_ipro
  • virtualtreeview

The above list is sourced from the [Lazarus source directory]/IDE/Makefile.fpc and may be subject to change.

Note that if you have not compiled your own Lazarus IDE with the bigide argument, you can install any of these packages yourself using the Lazarus IDE Package > Install/Uninstall Packages.. dialog.

Free pascal compiler mac os x

Installing non-release versions of FPC

FPC Trunk

  • FPC User Changes in Trunk - may break existing code.

Note that since fpc trunk is by definition still under development, some of the features may still change before they end up in a release version.

The source code is kept in a version control system called subversion or svn for short, and is mirrored in git:

  • macOS 10.5 and higher already contain a command line svn or git client if you have installed the Xcode command line utilities. You can also use fink, port or brew to get an svn client on newer macOS. SVN clients with GUI (graphical user interface) are available from Versiontracker. A quite handy client, which integrates in Finder, is SCPlugin.
  • You also need the latest released Free Pascal Compiler version (3.2.0 as of July 2020) installed in order to be able to successfully compile the development (trunk) version.

Create a directory where you would like to put the source (eg fpc in your home directory). You don't need to be root to do this. Any normal user can do this. Open an Applications > Utilities > Terminal and do the following:

Using git:

Using svn:

This will create a directory called 'fpc', which can be later used in the IDE, and download the FPC source to it.

To subsequently download/update the latest source changes you can simply do:

Using git:

Using svn:

To build and install FPC (the highlighted text should be all on one line):

You will also need to update the links for the compiler in /usr/local/bin which will be pointing to the previous FPC version. For example:

Note that you will need to build a new ppc386 compiler if you want to continue to compile 32 bit applications by replacing these lines (this may not be possible after Xcode 11.3.1 and macOS 10.14.6 Mojave because of Apple's removal of 32 bit frameworks):

with these two lines:

Known issues and solutions

Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+

  • There is a patch needed for Lazarus 2.0.8 so that the Cocoa widgetset can be compiled:
  • After making this patch, recompile Lazarus 2.0.8 from within itself or with this build_laz.sh shell script (adjust path for Lazarus source as required):

Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier

  • [Lazarus 2.0.8 only] There is a patch required Lazarus 2.0.8 so that the Cocoa widgetset can be compiled. See above.
  • [Lazarus 2.0.8 + 2.0.10] There is also a patch needed for FPC 3.2.0. Edit the FPC 3.2.0 source in ./packages/cocoaint/src/CocoaAll.pas and comment out or remove the CoreImage linking line:
  • To rebuild FPC 3.2.0 with the patch, you need an FPC 3.0.4 binary installation. My build_320.sh shell script to rebuild and reinstall FPC 3.2.0 (adjust path for FPC source as required):

Note that:

  • if more than one line above is highlighted, all the highlighted content should be on one line;
  • you may need to change the second line depending on where your FPC Source code is installed;
  • you will almost certainly need to run the script by using sudo.

Now rebuild Lazarus with this build_laz.sh shell script (adjust path for Lazarus source as required):

- macOS 10.5 Leopard

  • After installing Xcode 3.1 (includes the command line tools) for Leopard, the first issue is that Xcode 3.1 does not come with the Clang compiler.
    • The solution is to create/add this to the .fpc.cfg file in your home directory:
  • The second issue is that the official Lazarus Mac OS X i386 download of FPC is FPC 3.0.4 and not 3.2.0.
    • The solution is to download the source for FPC 3.2.0 to your home directory. Open an Applications > Utilities > Terminal and:
  • The third issue is that the official Lazarus Mac OS X i386 download for Lazarus 2.0.10 was compiled with FPC 3.0.4 and not FPC 3.2.0.
    • The solution is to download the Lazarus release sources to your home directory. Open an Applications > Utilities > Terminal and:
  • Compiling FPC 3.2.0 on Leopard is tricky (thanks to Jonas for supplying the solution). Before compiling FPC 3.2.0, make this change to the source so that it will not attempt to link the missing CoreImage framework. Then compile using the following build_320.sh script (enter your password at the prompt for the install to proceed):

Note: The highlighted line above should all be on one line.

  • Compiling Lazarus 2.0.10 is less tricky. Before compiling Lazarus 2.0.10, make this change to the source so that the 'run without debugging' option will work. I use the following build_laz.sh script:

Note: The highlighted line above should all be on one line.

  • Finally, launch the newly compiled lazarus.app and adjust these Lazarus settings:
    • Tools > Options > Environment > Files > Compiler executable: this should be set to /usr/local/bin/ppc386.
    • Project > Project Options > Custom Options: add -WM10.5 to the Custom options.
    • Project > Project Options > Config and Target > Target CPU family: set to i386.
    • Project > Project Options > Config and Target > Current LCL widgetset: set to Carbon.
    • Project > Project Options: in the left pane, at the bottom, check 'Set compiler options as default'.

You should now be able to successfully compile and run the Lazarus default blank form project.

- macOS 10.8 Mountain Lion additional steps

  • The first issue is that the official Lazarus pkg file downloads will not install on Mountain Lion, giving the error 'Lazarus IDE cannot be installed on this disk' being the only disk in the system!
    • The solution is to download the Lazarus release sources to your home directory. Open an Applications > Utilities > Terminal and:
  • Unfortunately the compiler and assembler in the last version of Xcode and its command line tools available for Mountain Lion is too old to compile Lazarus.
    • The solution is to download the macOS Clang7 binary package from https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz, uncompress it and install in your home directory.
    • Open an Applications > Utilities > Terminal and:

Now follow the steps above.

Lazarus IDE - Unable to 'run without debugging'

Free Fortran Compiler For Mac Os X

If you are using the Lazarus IDE 2.0.10 and the Run > Run without debugging menu option fails with a dialog similar to:

then you need to patch the Lazarus 2.0.10 source code (Issue #37324 and Issue #36780). Specifically, patch ./ide/main.pp as below (unpatched lines shown first, patched lines shown second):

and recompile the Lazarus IDE.

Alternatively, you can omit patching the source code and simply recompile Lazarus 2.0.10 with FPC 3.0.4.

A similar patching exercise and recompiling, or simply recompiling with FPC 3.0.4, needs to be done for Lazarus 2.0.8 if it has been compiled with FPC 3.2.0.

Upgrading from Mojave (10.14) to Catalina (10.15)

  • Run sudo xcode-select --install
  • To enable Lazarus to locate the crt1.10.5.o file change in /etc/fpc.cfg the -Fl behind '#ifdef cpux86_64' from

to

Building the FPC compiler from Mojave (10.14) onwards

  • To find the crt1.10.5.o file when building a later Free Pascal Compiler version from source, you need to specify:

on the make command line because FPC ignores the /etc/fpc.cfg configuration file during builds of itself.

Mac Installation FAQ

  • See the Mac Installation FAQ for solutions to other common problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS.

Uninstalling Lazarus and Free Pascal

Installed using fink

The complete uninstall of all fpc and lazarus packages is done with:

If you want to preserve changes to the preference file /sw/etc/fpc.cfg, do:

For the removal of the Lazarus preferences subdirectory in your home directory, and the files that it contains, see the end of the next section.

Installed from packages or source

Normally you uninstall an application on macOS simply by dragging it from the Applications folder to the trash. But because Lazarus and Free Pascal are development tools, they're installed in several folders that you don't normally see in Finder.

You can copy and save the commands below to file uninstallLaz.sh and run it if you need to uninstall Lazarus and Free Pascal. You can usually install newer versions of Lazarus and Free Pascal over older versions, but as with most software it's not a bad idea to clean out everything before you install a newer version. This list of commands should also give you a sense of where the various pieces of Lazarus and Free Pascal are located.

Note that this assumes you have version 3.0.4 of Free Pascal installed. If you have a different version, change the two lines with a version number to specify your version.

To run this script, change to the directory where it's stored and enter:

Then enter your password when prompted.

Lazarus preference folder .lazarus in the home directory

Time

Using FPC from XCode

It is possible to use Free Pascal from within XCode (Mac OS X 10.3 is required).Look at the step-by-step instruction of how to download and install the XCode Integration Kit. Thanks to Rolf Jansen for this contribution.

Free Pascal 2.0 for Mac OS is the current release. It will work on latest classic Mac OS (that is 9.2.2) and below, probably down to 7.1.2 (the first Mac OS for PowerPC), and also in the classic compatibility environment on Mac OS X. However it has only been tested on Mac OS 9 and Mac OS X classic environment.

It requires that you have installed Macinstosh Programmers Workshop (MPW) which can be downloaded for free from Apple.

To download, go to the Download page, and choose a mirror site near you (to limit net traffic). The documentation, as well as the source code (if you need it), has to be downloaded separatelly.

Note that the compiler is an MPW tool.

Please report any bugs encountered.

Current status of classic Mac OS

Native FPC compiler (as an MPW tool)

Almost complete

Unit System.pp

Complete

The system unit is implicitly used by every program. Contains basic file and memory handling among others.

Unit Dos.pp

Complete

Contrary to what its name suggests, the DOS unit is cross plattfrom and contains utility routines for file and date handling, beyond that in System.pp. It is reminiscent from Turbo Pascal.

Unit Sysutils.pp

Planned

A moderner alternative to unit DOS, compatible with Delphi.

Unit MacOS

Complete

API to the Macintosh Toolbox

Units strings objpas heaptrc getopts etc

Implemented.

They are target independent.

Other units

Non-existent. Some will be implemented.

Implementation will depend on how important the unit is and if difficulties arise.

Debugging

There is some limited possibilities to debug programs in classic Mac OS. See MPW debugging in the wiki.

As an alternative, you might do the main debugging in a Mac OS X/Darwin version of your program.

There are three major Pascal dialects: Turbo Pascal (extended to Delphi, supported by FreePascal, and partially by Gnu Pascal), Extended Pascal (an ISO standard, supported by Gnu Pascal, DEC Pascal, Prospero Pascal), and the dialect originating from Apple (commonly used in the Mac community, supported by MPW Pascal, Metrowerks Pascal and Think Pascal). We call this dialect Mac Pascal and there is a special language mode for it: MacPas.

Mode MacPas is a compatibility mode. It is probably not possible to mimic the Mac Pascal dialect in detail. So the goal is to implement often used constructs, if this doesn't require too much effort, as well as easy-to-implement constructs.

To use MacPas, add -Mmacpas to the command line or insert the compiler directive {$MODE MACPAS} in the source code.

Note that the mac pascal dialect and mac targets are not interrelated. It is thus possible to write a mac program with the turbo dialect and to write a Windows program with the mac dialect.

The following are supported: Mac compiler directives like $SETC, $IFC, $ELSEC, $ENDC, $J, $Z. Most of the constructs found in interface files, especially Apples Universal Interfaces. Cycle, Leave, Otherwise. More is planned.

More updated info on the Wiki page.

By Olle Raab

For questions and suggestions, we suggest subscribing on our mailing lists , in particular FPC-pascal for questions about using Free Pascal.

Or write to olle.raab@freepascal.org

Latest modified 2005-07-28

English (en)한국어 (ko)русский (ru)

This article applies to macOS only.

See also: Multiplatform Programming Guide


Note: For installation on Apple Silicon/AArch64, please refer to Apple Silicon Support.

Installing Lazarus on a Mac is not particularly difficult but it is critical that you do the install in the correct order. Skipping steps will almost certainly lead to tears. In brief, here is what you need to do:

  1. Download and install Xcode.
  2. Install the global command line tools for Xcode.
  3. Download and install the Free Pascal Compiler (FPC) binaries and the FPC source from the Lazarus IDE file area (Important do this before you install the Lazarus IDE)
  4. Download and install the Lazarus IDE from the Lazarus IDE file area
  5. Configure LLDB - the Apple supplied (and signed) debugger from within the Lazarus IDE.

These steps are explained in more detail below.


  • 1Installation
    • 1.3Step 3: FPC, FPC Source
      • 1.3.2Other FPC Options
    • 1.5Step 5: Configure the Debugger
  • 4Installing non-release versions of the Lazarus IDE
  • 5Installing non-release versions of FPC
  • 6Known issues and solutions
    • 6.2Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier
  • 7Uninstalling Lazarus and Free Pascal

Installation

The detailed instructions assume a recent version of macOS on your Mac, a recent version of Xcode from Apple and a recent version of Lazarus. On the Legacy Information page, you will see older information that may be relevant if you are using older components. You can assist by replacing out of date info, either deleting it, or, if it may help someone working with a legacy project, moving it to the bottom of the page.

In general, this is about using both the Carbon and Cocoa Widget Set. While Carbon was once seen as a little more stable, with the release Lazarus 2.0.8 the 64 bit Cocoa Widget Set has now surpassed Carbon and should be considered seriously for any new projects. Carbon was intentionally (by Apple) limited to 32 bits and you should be aware that it has been removed completely from macOS 10.15 Catalina which only supports 64 bit Cocoa.

Step 1: Download Xcode

You need the Apple Developer tools, which are a part of the Xcode development environment.

Xcode 11.3.1 for use on macOS 10.14 Mojave must now be installed by downloading it from Apple Developer Connection (ADC), which requires free registration. Xcode 11.4.x for use on macOS 10.15 Catalina can be installed from the Mac App store. Note that you must first move any old Xcode versions from the Applications folder into the trash or rename the Xcode app (eg Xcode.app to Xcode_1014.app). You can select which version of Xcode to use with the command line utility xcode-select.

Older systems:

The developer tools can be installed from the original macOS installation disks or a newer copy downloaded from the Apple Developer Connection (ADC), which requires free registration. Download the Xcode file, it will end up in your Downloads directory as a zip file. Click it. It is unarchived into your Downloads directory. You may be happy with it there but maybe not. Other users will see the path to it but be unable to use it. And it is untidy there. So I moved mine and then told xcode-select where it was moved to (in a terminal) -

Step 2: Xcode Command Line Tools

This is shown here as a separate step because it really is a separate step in addition to Step 1. Don't confuse this with the internal Xcode command line tools that the Xcode GUI will tell you are already installed. Lazarus cannot use those Xcode internal command line tools, so do the following (it is quick and easy)-

If you have problems installing using this command line method (e.g. the installer freezes while 'finding Software'), you can also download and install the package by logging in to the Apple Developer Site and downloading and installing the Command Line Tools for Xcode Disk image.

Step 3: FPC, FPC Source

Download and install the Free Pascal Compiler (FPC) binaries and the separate source package. A compatible FPC (and source) must be installed before you install Lazarus. You have a number of options.

Source Forge

Download the Free Pascal Compiler (FPC) binaries and FPC source packages from the Lazarus IDE file area. When you arrive at that file area, choose the correct version of your operating system. The vast majority of Mac users should now choose the 64 bit packages in the Lazarus macOS x86-64 directory. Every Mac computer since late 2006 has been 64 bit capable. The fact that Apple has completely dropped all 32 bit support from macOS 10.15 Catalina (released in October 2019) is another reason to choose the 64 bit packages.

These binary install kits are built by the FPC/Lazarus developers and track formal releases. As these install kits are not approved by Apple, you need to hold down the Control key, click the package and choose Open and confirm you want to install from an Unknown Developer.

You might like to apply a simple and quick test of FPC at this stage - Testing FPC installation.

Other FPC Options

fpcupdeluxe

You could also consider using fpcupdeluxe to install FPC and, perhaps Lazarus.

fink

Alternatively, you can use fink, a package manager for macOS to install FPC. Note at the time of writing (Early 2020) fink offers Lazarus 2.0.6. The extra bonus of fink is easy installation as well as clean removal of a huge number of other open source software packages, including Free Pascal crosscompilers for many processors and systems. The choice for Lazarus is between a Carbon or Cocoa look, a gtk2 look, a Qt4-based and a Qt5-based version:

You will be asked, whether to install a number of dependencies, including the Free Pascal Compiler, the Lazarus sources. Simply hit RETURN at the prompt and go for a coffee. It may take quite some time to build all packages, in particular on older Macs.

After installation, Lazarus can be started from the folder /Applications/Fink/. The actual details of FPC and Lazarus are in subdirectories of /sw

With any Lazarus package from fink, these widget sets are supported for your program on macOS:

carbon (Aqua), cocoa, gtk2, qt4 (Aqua), qt5 (Aqua), nogui, win32, win64 and wince.

If you install FPC from fink, you will be fine downloading Lazarus source and compiling as detailed below. However, its possibly not a good idea to mix fink FPC with the Sourceforge binary install of Lazarus.

MacPorts

MacPorts has also a package description of the cocoa-64 bit version of lazarus 2.0.6. Install it with:

Step 4: Install the Lazarus IDE

Download and install the Lazarus IDE from the Lazarus IDE file area. When you arrive at that file area, choose the correct version of your operating system. The vast majority of Mac users should now choose the 64 bit packages in the Lazarus macOS x86-64 directory. Every Mac computer since late 2006 has been 64 bit capable. The fact that Apple has completely dropped all 32 bit support from macOS 10.15 Catalina (released in October 2019) is another reason to choose the 64 bit packages.

Step 5: Configure the Debugger

In versions of Lazarus 1.8.4 and earlier, you needed to use gdb as a debugger, slow to install and hard to sign. Since Lazarus 2.0.0 you can (and should) use lldb, a debugger provided by Apple, no signing required.

Assuming you have installed what is necessary and started Lazarus, all that remains is configuring the debugger. If you don't do this now, Lazarus will try to use gdb and fail.

First, click Tools > Options > Debugger. Top right of the window now open has a label, 'Debugger type and path', you must set both. Select 'LLDB debugger (with fpdebug) (Beta)'.

If it is not shown in the selection list, see Installing LazDebuggerFpLLdb below. The XCode command line tools install lldb to the /usr/bin directory. Save those settings and you can now try to compile the almost nothing program that Lazarus has kindly provided for you (click the small green triangle near top left).

Next you see a puzzling question, see image below. Choose a 'Debug Format' from one of the offered -

Martin_fr, the person who has given us this interface between Lazarus and lldb, suggests you use 'dwarf3' . Then, you need to enter your password, a macOS cuteness because one application appears to be interfering with another. In this case, that's fine!

When running the debugger from time to time you will be asked for your password to allow debugging. This is for your own safety.

Extra Information on using lldb

A great deal of information about using lldb appears in this forum thread. Here are a few gems, again, from Martin_fr:

In the unexpected case of problems, it may be worth trying 'dwarf with sets' instead of just 'dwarf3'.

The 'debug info' setting only affects the units directly in your project. However, units in packages may have debug info too. This can be:

  • set per package
  • for many, but not all packages in the menu Tools > Configure 'Build Lazarus'
  • Project > Project Options > Additions and Overrides

If you change settings for a package, you might want to check which package you expect to step into when debugging. Packages you do not step into, do not need debug info.

If you use a type from a package (such as TForm from LCL) it is enough that your unit (in which you declare the variable / must declare and use a variable to include the type) has debug info. Reducing the number of packages with debug info (including those that default to have debug info), can shorten the debuggers start-up time.

Also it may be worth comparing (it has not been tested) the debuggers start up time for the same settings, only changing the checkbox 'use external debug info'.

This needs to be only set in your project. If set in your project it will affect all packages. (If set in a package it will do nothing / at least should..)

Installing LazDebuggerFpLLdb

If you installed from source and used the bigide parameter to make, then the correct debugger will be installed, as a package, and ready to go. If, however, you installed in another way, it may, or may not be there. From the main IDE screen, click Packages->Install/UninstallPackages. Shown is two lists of packages, the list on the left is installed, the list on the right is available to install. Look for LazDebuggerFpLldb (exactly that, there are some similar named but less suitable packages). If it is on the right hand side, click it, press 'Install Selection' and then 'Save and rebuild IDE'. This will take a little time, the IDE will shutdown and restart and all should be well. Now jump back up the page and continue configuring the debugger.

Cocoa 64 bit vs Carbon 32 bit

Lazarus using the Apple 64 bit Cocoa framework should now meet the needs of users. The Apple 32 bit Carbon framework works pretty much as expected but you are advised to try Cocoa first, because Apple has dropped support for 32 bit applications and the Carbon framework from macOS 10.15 Catalina which was released in October 2019.

Alternatives include QT and GTK2+, both requiring additional libraries and GTK2+ on the Mac appears to get little attention these days. QT on the Mac does have some strong supporters on the Lazarus forum.

Cocoa is now undeniably the future on the Mac. It is possible to build an all Cocoa version of Lazarus with release 2.0.0 and later. It is also possible to make a Carbon install of Lazarus (unless you are running macOS 10.15 Catalina or later) and use that to generate Cocoa 64 bit binaries.

In the Carbon or Cocoa IDE, you need to set the Target to the 64 bit processor and select the Cocoa Widget set:

  • Open your project with Lazarus and from the menu select Project > Project Options
  • In the 'Config and Target' panel set the 'Target CPU family' to be 'x86_64'
  • In the 'Additions and Overrides' panel click on 'Set LCLWidgetType' pulldown and set the value to 'Cocoa'
  • For some reason Lazarus sets the compiler to '/usr/local/bin/ppc386' - which results in 32 bit applications. Make sure under Tools > Options that 'Compiler Executable' is set to '/usr/local/bin/fpc' to get 64 bit applications.
  • Now compile your project - and please feed back any problems you experience.

Compatibility

Not every combination of Lazarus and Free Pascal is compatible with every installation of macOS. Please refer to the following table in order to find the correct version for your development environment:

Lazarus Compatibility Matrix
Lazarus 1.6.0Lazarus 1.6.2Lazarus 1.6.4Lazarus 1.8.xLazarus 2.0.yLazarus 2.0.8Lazarus 2.0.10
FPC 3.0.0FPC 3.0.2FPC 3.0.4FPC 3.2.0
PPC processors
Mac OS X 10.4 (Tiger)IncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatible
Mac OS X 10.5 (Leopard)Not testedNot testedNot testedNot testedIncompatibleIncompatibleIncompatible
Intel processors
Mac OS X 10.4 (Tiger)IncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatibleIncompatible
Mac OS X 10.5 (Leopard)Not testedNot testedNot testedNot testedCompatible^Not testedCompatible^**†
Mac OS X 10.6 (Snow Leopard)CompatibleCompatibleCompatibleCompatibleCompatible*Not testedNot tested
Mac OS X 10.7 (Lion)CompatibleCompatibleCompatibleCompatibleNot testedNot testedNot tested
OS X 10.8 (Mountain Lion)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible**#Compatible**#
OS X 10.9 (Mavericks)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible**†Compatible**†
OS X 10.10 (Yosemite)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible**†Compatible**†
OS X 10.11 (El Capitan)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible***†Compatible†
macOS 10.12 (Sierra)Compatible*Compatible*Compatible*Compatible*CompatibleCompatible***†Compatible†
macOS 10.13 (High Sierra)Not testedNot testedCompatibleNot testedCompatibleCompatible***†Compatible†
macOS 10.14 (Mojave)Not testedNot testedNot testedNot testedCompatibleCompatible***†Compatible†
macOS 10.15 (Catalina)Not testedNot testedNot testedNot testedCompatibleCompatible***†Compatible†
macOS 11.0 (Big Sur Dev Beta 6)Not testedNot testedNot testedNot testedCompatibleCompatible***†Compatible†

^ Carbon interface compiles - Cocoa does not.

* Restrictions apply to debugging with gdb.

** See Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier for instructions.

*** See Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+ for instructions.

# Cannot run with/without debugging in the IDE. Can run compiled application outside of the IDE. See Issue #37324

† Cannot run without debugging in the IDE. Can run compiled application outside of the IDE. See Lazarus IDE - Unable to 'run without debugging' for workaround. See Issue #36780.

x = 0, 2 or 4; y = 0, 2, 4, 6, 8 or 10

Installing non-release versions of the Lazarus IDE

Lazarus Fixes 2.0

There are a number of reasons why you may be better off using a non-release version of Lazarus, specifically, fixes_2_0. Particularly:

  • You almost certainly need to target Cocoa, macOS 10.15 Catalina does not support 32 bit Carbon at all.
  • The Cocoa widget set has steadily improved, and the lldb debugger interface has rapidly improved, since even v2.0.0.
  • Fixes_2_0 is a safer and more stable option than trunk, but still gets the new features much faster than the release version.

Precompiled binaries based on fixes_2_0 are not available from SourceForge but can be obtained from fpcupdeluxe. But here we will discuss downloading source and building. A little slow initially but very reliable and a great test of your compiler install ! You will need git which is included in all recent versions of the Xcode command line tools which you should have already installed (see Xcode Command Line Tools above).

About svn or git: The XCode 11.4 command line tools on macOS 10.15 no longer install svn, only git. You can install subversion via fink, ports or brew.

Create a directory for Lazarus and download the current fixes version:

Using git:

Using svn:

Depending on your internet connection and server congestion this takes a few seconds or a couple of minutes. Then build it:

  • Note I pass a parameter to use a config directory that is based on the name of the actual install directory. It makes some scripting easy.
  • On older macOS supporting 32bit applications, replace above make line with 'make LCL_PLATFORM=carbon CPU_TARGET=i386 bigide ' and setup your project as mentioned in the Carbon and Cocoa section below.

You might like to put a small script in your $HOME/bin directory and even set a path to it (very UNIX!)

To keep your fixes_2_0 installation up to date is as easy as:

Using git:

Using svn:

Lazarus Trunk

Precompiled binaries based on trunk are not available from SourceForge, so here's how to download the trunk source using git and build the Lazarus IDE. You will need git which is included in all recent versions of the Xcode command line tools which you should have already installed (see Xcode Command Line Tools above).

Using git:

Using svn:

To update your existing trunk source.

Using git:

Using svn:

What does the bigide make argument do?

The bigidemake argument adds a bunch of packages to Lazarus that many find useful and accent dow without. The packages that are added are:

  • cairocanvas
  • chmhelp
  • datetimectrls
  • externhelp
  • fpcunit
  • fpdebug
  • instantfpc
  • jcf2
  • lazcontrols
  • lazdebuggers
  • lclextensions
  • leakview
  • macroscript
  • memds
  • onlinepackagemanager
  • pas2js
  • PascalScript
  • printers
  • projecttemplates
  • rtticontrols
  • sdf
  • sqldb
  • synedit
  • tachart
  • tdbf
  • todolist
  • turbopower_ipro
  • virtualtreeview

The above list is sourced from the [Lazarus source directory]/IDE/Makefile.fpc and may be subject to change.

Note that if you have not compiled your own Lazarus IDE with the bigide argument, you can install any of these packages yourself using the Lazarus IDE Package > Install/Uninstall Packages.. dialog.

Installing non-release versions of FPC

FPC Trunk

  • FPC User Changes in Trunk - may break existing code.

Note that since fpc trunk is by definition still under development, some of the features may still change before they end up in a release version.

The source code is kept in a version control system called subversion or svn for short, and is mirrored in git:

  • macOS 10.5 and higher already contain a command line svn or git client if you have installed the Xcode command line utilities. You can also use fink, port or brew to get an svn client on newer macOS. SVN clients with GUI (graphical user interface) are available from Versiontracker. A quite handy client, which integrates in Finder, is SCPlugin.
  • You also need the latest released Free Pascal Compiler version (3.2.0 as of July 2020) installed in order to be able to successfully compile the development (trunk) version.

Create a directory where you would like to put the source (eg fpc in your home directory). You don't need to be root to do this. Any normal user can do this. Open an Applications > Utilities > Terminal and do the following:

Using git:

Using svn:

This will create a directory called 'fpc', which can be later used in the IDE, and download the FPC source to it.

To subsequently download/update the latest source changes you can simply do:

Using git:

Using svn:

To build and install FPC (the highlighted text should be all on one line):

You will also need to update the links for the compiler in /usr/local/bin which will be pointing to the previous FPC version. For example:

Note that you will need to build a new ppc386 compiler if you want to continue to compile 32 bit applications by replacing these lines (this may not be possible after Xcode 11.3.1 and macOS 10.14.6 Mojave because of Apple's removal of 32 bit frameworks):

with these two lines:

Known issues and solutions

Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+

  • There is a patch needed for Lazarus 2.0.8 so that the Cocoa widgetset can be compiled:
  • After making this patch, recompile Lazarus 2.0.8 from within itself or with this build_laz.sh shell script (adjust path for Lazarus source as required):

Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier

  • [Lazarus 2.0.8 only] There is a patch required Lazarus 2.0.8 so that the Cocoa widgetset can be compiled. See above.
  • [Lazarus 2.0.8 + 2.0.10] There is also a patch needed for FPC 3.2.0. Edit the FPC 3.2.0 source in ./packages/cocoaint/src/CocoaAll.pas and comment out or remove the CoreImage linking line:
  • To rebuild FPC 3.2.0 with the patch, you need an FPC 3.0.4 binary installation. My build_320.sh shell script to rebuild and reinstall FPC 3.2.0 (adjust path for FPC source as required):

Note that:

  • if more than one line above is highlighted, all the highlighted content should be on one line;
  • you may need to change the second line depending on where your FPC Source code is installed;
  • you will almost certainly need to run the script by using sudo.

Now rebuild Lazarus with this build_laz.sh shell script (adjust path for Lazarus source as required):

- macOS 10.5 Leopard

  • After installing Xcode 3.1 (includes the command line tools) for Leopard, the first issue is that Xcode 3.1 does not come with the Clang compiler.
    • The solution is to create/add this to the .fpc.cfg file in your home directory:
  • The second issue is that the official Lazarus Mac OS X i386 download of FPC is FPC 3.0.4 and not 3.2.0.
    • The solution is to download the source for FPC 3.2.0 to your home directory. Open an Applications > Utilities > Terminal and:
  • The third issue is that the official Lazarus Mac OS X i386 download for Lazarus 2.0.10 was compiled with FPC 3.0.4 and not FPC 3.2.0.
    • The solution is to download the Lazarus release sources to your home directory. Open an Applications > Utilities > Terminal and:
  • Compiling FPC 3.2.0 on Leopard is tricky (thanks to Jonas for supplying the solution). Before compiling FPC 3.2.0, make this change to the source so that it will not attempt to link the missing CoreImage framework. Then compile using the following build_320.sh script (enter your password at the prompt for the install to proceed):

Note: The highlighted line above should all be on one line.

  • Compiling Lazarus 2.0.10 is less tricky. Before compiling Lazarus 2.0.10, make this change to the source so that the 'run without debugging' option will work. I use the following build_laz.sh script:

Note: The highlighted line above should all be on one line.

  • Finally, launch the newly compiled lazarus.app and adjust these Lazarus settings:
    • Tools > Options > Environment > Files > Compiler executable: this should be set to /usr/local/bin/ppc386.
    • Project > Project Options > Custom Options: add -WM10.5 to the Custom options.
    • Project > Project Options > Config and Target > Target CPU family: set to i386.
    • Project > Project Options > Config and Target > Current LCL widgetset: set to Carbon.
    • Project > Project Options: in the left pane, at the bottom, check 'Set compiler options as default'.

You should now be able to successfully compile and run the Lazarus default blank form project.

- macOS 10.8 Mountain Lion additional steps

  • The first issue is that the official Lazarus pkg file downloads will not install on Mountain Lion, giving the error 'Lazarus IDE cannot be installed on this disk' being the only disk in the system!
    • The solution is to download the Lazarus release sources to your home directory. Open an Applications > Utilities > Terminal and:
  • Unfortunately the compiler and assembler in the last version of Xcode and its command line tools available for Mountain Lion is too old to compile Lazarus.
    • The solution is to download the macOS Clang7 binary package from https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz, uncompress it and install in your home directory.
    • Open an Applications > Utilities > Terminal and:

Now follow the steps above.

Lazarus IDE - Unable to 'run without debugging'

Free Fortran Compiler For Mac Os X

If you are using the Lazarus IDE 2.0.10 and the Run > Run without debugging menu option fails with a dialog similar to:

then you need to patch the Lazarus 2.0.10 source code (Issue #37324 and Issue #36780). Specifically, patch ./ide/main.pp as below (unpatched lines shown first, patched lines shown second):

and recompile the Lazarus IDE.

Alternatively, you can omit patching the source code and simply recompile Lazarus 2.0.10 with FPC 3.0.4.

A similar patching exercise and recompiling, or simply recompiling with FPC 3.0.4, needs to be done for Lazarus 2.0.8 if it has been compiled with FPC 3.2.0.

Upgrading from Mojave (10.14) to Catalina (10.15)

  • Run sudo xcode-select --install
  • To enable Lazarus to locate the crt1.10.5.o file change in /etc/fpc.cfg the -Fl behind '#ifdef cpux86_64' from

to

Building the FPC compiler from Mojave (10.14) onwards

  • To find the crt1.10.5.o file when building a later Free Pascal Compiler version from source, you need to specify:

on the make command line because FPC ignores the /etc/fpc.cfg configuration file during builds of itself.

Mac Installation FAQ

  • See the Mac Installation FAQ for solutions to other common problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS.

Uninstalling Lazarus and Free Pascal

Installed using fink

The complete uninstall of all fpc and lazarus packages is done with:

If you want to preserve changes to the preference file /sw/etc/fpc.cfg, do:

For the removal of the Lazarus preferences subdirectory in your home directory, and the files that it contains, see the end of the next section.

Installed from packages or source

Normally you uninstall an application on macOS simply by dragging it from the Applications folder to the trash. But because Lazarus and Free Pascal are development tools, they're installed in several folders that you don't normally see in Finder.

You can copy and save the commands below to file uninstallLaz.sh and run it if you need to uninstall Lazarus and Free Pascal. You can usually install newer versions of Lazarus and Free Pascal over older versions, but as with most software it's not a bad idea to clean out everything before you install a newer version. This list of commands should also give you a sense of where the various pieces of Lazarus and Free Pascal are located.

Note that this assumes you have version 3.0.4 of Free Pascal installed. If you have a different version, change the two lines with a version number to specify your version.

To run this script, change to the directory where it's stored and enter:

Then enter your password when prompted.

Lazarus preference folder .lazarus in the home directory

Jan 31, 2018 Q4: Can I play Teenage Mutant Ninja Turtles Turtles in Time Re-Shelled PS3 game on my PC? A: Yes, you can play this game on your PC with the help of an RPCS3 emulator. The RPCS3 emulator is PS3 emulator which is working on PC. With the use of the RPCS3 emulator, you can play any PS3 game on your PC.

Lazarus also creates a .lazarus preferences subdirectory in your home directory where it stores environment settings and a list of recently opened projects and files. You can leave this folder alone if you want the new version of Lazarus you're installing to use your old settings. macOS normally doesn't show files or folders whose names start with a dot (.). To see this folder and its contents, open an Applications > Utilities > Terminal and enter the following in the Terminal window:

To remove it, execute the following commands:

Free Compiler For Windows 10

See also

Gcc Compiler For Mac Os X Free Download

  • Mac Portal for an overview of development for macOS with Lazarus and Free Pascal.
  • Mac Installation FAQ for solutions to the most frequent problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS.
  • Legacy Information for details of installing Lazarus on PowerPC-based Macs, old Xcode versions, the gdb debugger, etc.

Mac Os Compiler

Retrieved from 'https://wiki.lazarus.freepascal.org/index.php?title=Installing_Lazarus_on_macOS&oldid=140806'




broken image