GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — FPCSource/compiler at main · fpc/FPCSource

Expand file tree

/

compiler

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
/

compiler

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
aarch64
aarch64
 
 
arm
arm
 
 
armgen
armgen
 
 
avr
avr
 
 
generic
generic
 
 
i386
i386
 
 
i8086
i8086
 
 
jvm
jvm
 
 
llvm
llvm
 
 
loongarch64
loongarch64
 
 
m68k
m68k
 
 
mips
mips
 
 
msg
msg
 
 
powerpc
powerpc
 
 
powerpc64
powerpc64
 
 
ppcgen
ppcgen
 
 
riscv
riscv
 
 
riscv32
riscv32
 
 
riscv64
riscv64
 
 
sparc
sparc
 
 
sparc64
sparc64
 
 
sparcgen
sparcgen
 
 
systems
systems
 
 
utils
utils
 
 
wasm32
wasm32
 
 
x86
x86
 
 
x86_64
x86_64
 
 
xtensa
xtensa
 
 
z80
z80
 
 
.gitignore
.gitignore
 
 
COPYING.txt
COPYING.txt
 
 
MPWMake
MPWMake
 
 
Makefile
Makefile
 
 
Makefile.fpc
Makefile.fpc
 
 
README.txt
README.txt
 
 
aasmbase.pas
aasmbase.pas
 
 
aasmcfi.pas
aasmcfi.pas
 
 
aasmcnst.pas
aasmcnst.pas
 
 
aasmdata.pas
aasmdata.pas
 
 
aasmdef.pas
aasmdef.pas
 
 
aasmsym.pas
aasmsym.pas
 
 
aasmtai.pas
aasmtai.pas
 
 
aggas.pas
aggas.pas
 
 
aopt.pas
aopt.pas
 
 
aoptbase.pas
aoptbase.pas
 
 
aoptda.pas
aoptda.pas
 
 
aoptobj.pas
aoptobj.pas
 
 
aoptutils.pas
aoptutils.pas
 
 
assemble.pas
assemble.pas
 
 
blockutl.pas
blockutl.pas
 
 
browcol.pas
browcol.pas
 
 
catch.pas
catch.pas
 
 
ccharset.pas
ccharset.pas
 
 
cclasses.pas
cclasses.pas
 
 
cdynset.pas
cdynset.pas
 
 
cepiktimer.pas
cepiktimer.pas
 
 
cfidwarf.pas
cfidwarf.pas
 
 
cfileutl.pas
cfileutl.pas
 
 
cg64f32.pas
cg64f32.pas
 
 
cgbase.pas
cgbase.pas
 
 
cgexcept.pas
cgexcept.pas
 
 
cghlcpu.pas
cghlcpu.pas
 
 
cgobj.pas
cgobj.pas
 
 
cgutils.pas
cgutils.pas
 
 
cmsgs.pas
cmsgs.pas
 
 
comphook.pas
comphook.pas
 
 
compiler.pas
compiler.pas
 
 
compinnr.pas
compinnr.pas
 
 
comprsrc.pas
comprsrc.pas
 
 
comptty.pas
comptty.pas
 
 
constexp.pas
constexp.pas
 
 
cprofile.pas
cprofile.pas
 
 
crefs.pas
crefs.pas
 
 
cresstr.pas
cresstr.pas
 
 
cscript.pas
cscript.pas
 
 
cstreams.pas
cstreams.pas
 
 
ctask.pas
ctask.pas
 
 
cutils.pas
cutils.pas
 
 
dbgbase.pas
dbgbase.pas
 
 
dbgcodeview.pas
dbgcodeview.pas
 
 
dbgdwarf.pas
dbgdwarf.pas
 
 
dbgdwarfconst.pas
dbgdwarfconst.pas
 
 
dbgstabs.pas
dbgstabs.pas
 
 
dbgstabx.pas
dbgstabx.pas
 
 
defcmp.pas
defcmp.pas
 
 
defutil.pas
defutil.pas
 
 
dirparse.pas
dirparse.pas
 
 
dwarfbase.pas
dwarfbase.pas
 
 
elfbase.pas
elfbase.pas
 
 
entfile.pas
entfile.pas
 
 
export.pas
export.pas
 
 
expunix.pas
expunix.pas
 
 
finput.pas
finput.pas
 
 
fmodule.pas
fmodule.pas
 
 
fpcdefs.inc
fpcdefs.inc
 
 
fpchash.pas
fpchash.pas
 
 
fpcp.pas
fpcp.pas
 
 
fpkg.pas
fpkg.pas
 
 
fppu.pas
fppu.pas
 
 
gendef.pas
gendef.pas
 
 

README.txt

This directory contains the sources of the Free Pascal Compiler

If you want to compile/modify the compiler, please read first the
programmers manual.

To recompile the compiler, you can use the make utility as following:

      make OS_TARGET="compiler OS target" \
      CPU_TARGET="compiler CPU target" \
      FPCCPUOPT="Optimization level" \
      PP="compiler used to compile FPC" \
      COMPILER_OPTIONS="Options passed to compiler" \

If an option is omitted, then target CPU/OS will be same as current CPU/OS

Possibles targets are : linux go32v2 win32 os2 freebsd beos netbsd amiga haiku
atari sunos qnx netware openbsd wdosx palmos macos macosx emx

The list might change anytime, including possible target CPUs.
Almost - if not all - possible target CPUs + OSes are put in Makefile.fpc and Makefile.

To generate HTML documents:

      make htmldocs

Possible compiler switches (* marks a currently required switch):
  -----------------------------------------------------------------
  GDB*                support of the GNU Debugger
  I386                generate a compiler for the Intel i386+
  x86_64              generate a compiler for the AMD x86-64 architecture
  M68K                generate a compiler for the M68000
  SPARC               generate a compiler for SPARC
  POWERPC             generate a compiler for the PowerPC
  VIS                 generate a compile for the VIS
  DEBUG               version with debug code is generated
  EXTDEBUG            some extra debug code is executed
  SUPPORT_MMX         only i386: releases the compiler switch
                      MMX which allows the compiler to generate
                      MMX instructions
  EXTERN_MSG          Don't compile the msgfiles in the compiler, always
                      use external messagefiles, default for TP
  NOAG386INT          no Intel Assembler output
  NOAG386NSM          no NASM output
  NOAG386BIN          leaves out the binary writer, default for TP
  NORA386DIR          No direct i386 assembler reader
  TEST_GENERIC        Test Generic version of code generator
                      (uses generic RTL calls)
  -----------------------------------------------------------------
  cpuflags            The target processor has status flags (on by default)
  cpufpemu            The target compiler will also support emitting software
                       floating point operations
  cpu64bitaddr        The targets use a 64-bit address space (pointers and
                       the default integer type are 64 bit)
  cpu64bitalu         The target cpu has 64-bit registers available (unless
                       cpu64bitaddr is also defined, pointers and default
                       integer type remain 32 bit, but the cpu can perform
                       64 bit calculations directly without needing helpers)
  -----------------------------------------------------------------

  Required switches for a i386 compiler be compiled by Free Pascal Compiler:
  GDB;I386

to build a compiler to SPARC target using a Win32/i386 you just use :
      make CPU_TARGET=SPARC
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.