Compiler Toolchain - tajmone/PBasmUI GitHub Wiki

PureBASIC v5.61

A review of PureBASIC compiler's toolchain and the third party tools involved.


Table of Contents


Binary Tools

The PureBASIC compiler for Windows relies on the following tools, residing the "Compilers" directory inside PureBASIC installation dir:

  • pbcompiler.exe — The PureBASIC compiler
  • PBDebugger.exe — The PureBASIC Debuger
  • FAsm.exe — flat assembler v1.71.39
  • polib.exe — Pelles Library Manager v6.00.1
  • polink.exe — Pelles Linker v5.00.1
  • porc.exe — Pelles Resource Compiler v7.00.0

FAsm (Flat Assembler)

C:\Program Files\PureBasic\Compilers>fasm.exe
flat assembler  version 1.71.39
usage: fasm <source> [output]
optional settings:
 -m <limit>         set the limit in kilobytes for the available memory
 -p <limit>         set the maximum allowed number of passes
 -d <name>=<value>  define symbolic variable
 -s <file>          dump symbolic information for debugging

polib (Pelles Library Manager)

Polib is part of the Pelles C development kit for Windows.

C:\Program Files\PureBasic\Compilers>polib.exe
Pelles Library Manager, Version 6.00.1
Copyright (c) Pelle Orinius 1997-2009

Syntax:
POLIB [ { option | file | @commandfile } ... ]

Options:
/DEF:filename      Build import library from module-definition file
/EXPLODE           Create object files for all members
/EXTRACT:member    Create object file for the given member
/LIST              List all member names
/MACHINE:type      Set target machine type: AMD64, ARM, X64, or X86
/MAKEDEF:filename  Build module-definition file from import library
/NOUND             Don't add underscore to import names
/OUT:filename      Name the output file
/REMOVE:member     Remove the given member
/VERBOSE           Display more information

polink (Pelles Linker)

Polink is part of the Pelles C development kit for Windows.

C:\Program Files\PureBasic\Compilers>polink.exe
Pelles Linker, Version 5.00.1
Copyright (c) Pelle Orinius 1998-2008

Syntax:
POLINK [ { option | file | @commandfile } ... ]

Options:
/ALIGN:#
/ALLOWBIND[:NO]
/ALLOWISOLATION[:NO]
/ALTERNATENAME:symbol=symbol
/BASE:address
/DEBUG[:NO]
/DEBUGTYPE:{CV|COFF|BOTH}
/DEF:filename
/DEFAULTLIB:filename
/DELAY:{NOBIND|UNLOAD}
/DELAYLOAD:filename
/DLL
/DRIVER[:{UPONLY|WDM}]
/ENTRY:symbol
/EXPORT:symbol[=[module.]symbol][,@ordinal[,NONAME]][,DATA]
/FIXED[:NO]
/FORCE:MULTIPLE
/HEAP:reserve[,commit]
/IMPLIB:filename
/INCLUDE:symbol
/LARGEADDRESSAWARE[:NO]
/LIBPATH:path
/MACHINE:{AMD64|ARM|X64|X86}
/MANIFEST[:NO]
/MANIFESTDEPENDENCY:dependency
/MANIFESTFILE:filename
/MAP[:filename]
/MAPINFO:{EXPORTS|FIXUPS|LINES}
/MERGE:from=to
/NODEFAULTLIB
/NOENTRY
/NXCOMPAT[:NO]
/OPT:{REF|NOREF|WIN98|NOWIN98}
/OSVERSION:#[.##]
/OUT:filename
/RELEASE
/SAFESEH[:NO]
/SECTION:name,[E][R][W][S][D][K][P]
/STACK:reserve[,commit]
/STUB:filename
/SUBSYSTEM:{CONSOLE|NATIVE|WINDOWS|WINDOWSCE}[,#[.##]]
/SWAPRUN:{CD|NET}
/TSAWARE[:NO]
/VERBOSE
/VERSION:#[.##]
/WS:AGGRESSIVE

porc (Pelles Resource Compiler)

Porc is part of the Pelles C development kit for Windows.

C:\Program Files\PureBasic\Compilers>porc.exe
Pelles Resource Compiler, Version 7.00.0
Copyright (c) Pelle Orinius 1997-2012

Syntax:
PORC [options] input[.rc]

Options:
/C<cp>             Define codepage for NLS conversion (default: 1252)
/D<name>[=<text>]  Define a symbol
/E                 Preprocess only (to stdout)
/Fo<file>          Rename the output file (default: input.res)
/I<path>           Add a search path for #include files
/L<langid>         Set default language ID
/N                 Append null character to all strings in the string table
/R                 Create a .res file (default, can always be omitted)
/V                 Display more information
/X                 Don't search standard places for #include files

External Links

Flat Assembler

Fasm was created and is still maintained by Tomasz Grysztar, a.k.a. Privalov, since 1999.

Pelles C

Built and maintained by Pelle Orinius:

⚠️ **GitHub.com Fallback** ⚠️