From 4cf24d98cba68e403903091488c7ae8f85c7b109 Mon Sep 17 00:00:00 2001
From: Tomas Hajny <hajny@freepascal.org>
Date: Fri, 16 Jan 2015 23:06:16 +0000
Subject: [PATCH]   * updated configuration file template (aligned to
 fpcmkcfg/fpc.cft where appropriate)

git-svn-id: trunk@29491 -
---
 installer/install.dat | 140 ++++++++++++++++++++++++++++++++++--------
 1 file changed, 115 insertions(+), 25 deletions(-)

diff --git a/installer/install.dat b/installer/install.dat
index 32b8a7d7c6..080e32f42b 100644
--- a/installer/install.dat
+++ b/installer/install.dat
@@ -846,6 +846,22 @@ defaultcfg=
 # Parsing switches
 # ----------------
 
+# Pascal language mode
+#      -Mfpc      free pascal dialect (default)
+#      -Mobjfpc   switch some Delphi 2 extensions on
+#      -Mdelphi   tries to be Delphi compatible
+#      -Mtp       tries to be TP/BP 7.0 compatible
+#      -Mgpc      tries to be gpc compatible
+#      -Mmacpas   tries to be compatible to the macintosh pascal dialects
+#
+# Turn on Object Pascal extensions by default
+#-Mobjfpc
+
+# Assembler reader mode
+#      -Rdefault  use default assembler
+#      -Ratt      read AT&T style assembler
+#      -Rintel    read Intel style assembler
+#
 # All assembler blocks are intel styled by default
 #-Rintel
 
@@ -856,19 +872,29 @@ defaultcfg=
 #-Rdirect
 
 # Semantic checking
-#  -S2        switch some Delphi 2 extensions on
-#  -Sc        supports operators like C (*=,+=,/= and -=)
-#  -Sd        tries to be Delphi compatible
-#  -Se<x>     compiler stops after the <x> errors (default is 1)
-#  -Sg        allow LABEL and GOTO
-#  -Sh        Use ansistrings
-#  -Si        support C++ styled INLINE
-#  -Sm        support macros like C (global)
-#  -So        tries to be TP/BP 7.0 compatible
-#  -Sp        tries to be gpc compatible
-#  -Ss        constructor name must be init (destructor must be done)
-#  -St        allow static keyword in objects
-# Allow goto, inline, C-operators
+#      -S2        same as -Mobjfpc
+#      -Sa        include assertion code.
+#      -Sc        supports operators like C (*=,+=,/= and -=)
+#      -Sd        same as -Mdelphi
+#      -Se<x>     error options. <x> is a combination of the following:
+#         <n> : compiler stops after <n> errors (default is 1)
+#         w   : compiler stops also after warnings
+#         n   : compiler stops also after notes
+#         h   : compiler stops also after hints
+#      -Sg        allow LABEL and GOTO
+#      -Sh        Use ansistrings
+#      -Si        support C++ styled INLINE
+#      -Sk        load fpcylix unit
+#      -SI<x>     set interface style to <x>
+#         -SIcom    COM compatible interface (default)
+#         -SIcorba  CORBA compatible interface
+#      -Sm        support macros like C (global)
+#      -So        same as -Mtp
+#      -Sp        same as -Mgpc
+#      -Ss        constructor name must be init (destructor must be done)
+#      -Sx        enable exception keywords (default in Delphi/ObjFPC modes)
+#
+# Allow goto, inline, C-operators, C-vars
 -Sgic
 
 # ---------------
@@ -890,9 +916,21 @@ defaultcfg=
 #-Ct
 
 # Optimizer switches
-# -O1        level 1 optimizations (quick and debugger friendly)
-# -O2        level 2 optimizations (-O1 + quick optimizations)
-# -O3        level 3 optimizations (-O2 + slow optimizations)
+# -Os        generate smaller code
+# -Oa=N      set alignment to N
+# -O1        level 1 optimizations (quick optimizations, debuggable)
+# -O2        level 2 optimizations (-O1 + optimizations which make debugging more difficult)
+# -O3        level 3 optimizations (-O2 + optimizations which also may make the program slower rather than faster)
+# -Oo<x>     switch on optimalization x. See fpc -i for possible values
+# -OoNO<x>   switch off optimalization x. See fpc -i for possible values
+# -Op<x>     set target cpu for optimizing, see fpc -i for possible values
+
+#ifdef darwin
+#ifdef cpui386
+-Cppentiumm
+-Oppentiumm
+#endif
+#endif
 
 
 # -----------------------
@@ -909,6 +947,8 @@ defaultcfg=
 #-Fr%basepath%/msg/errord.msg
 #-Fr%basepath%/msg/errorr.msg
 
+# search path for unicode binary files
+-FM%basepath%/unicode/
 # path to the gcclib
 #-Fl%basepath%/lib
 
@@ -926,12 +966,42 @@ defaultcfg=
 -Fu%basepath%/units/%fpctargetmacro%/*
 -Fu%basepath%/units/%fpctargetmacro%/rtl
 
+#ifdef cpui8086
+-Fu%basepath%/units/%fpctargetmacro%/$fpcsubarch-$fpcmemorymodel
+-Fu%basepath%/units/%fpctargetmacro%/$fpcsubarch-$fpcmemorymodel/*
+-Fu%basepath%/units/%fpctargetmacro%/$fpcsubarch-$fpcmemorymodel/rtl
+#endif
+
 # searchpath for libraries
 #-Fl%basepath%/lib
 #-Fl/lib;/usr/lib
 
 # searchpath for tools
 -FD%basepath%/bin/%fpctargetmacro%
+# never need cross-prefix when targeting the JVM
+# (no native compiler, always cross-compiling)
+#ifdef cpujvm
+#undef NEEDCROSSBINUTILS
+#endif
+
+# for android cross-prefix is set by compiler
+#ifdef android
+#undef NEEDCROSSBINUTILS
+#endif
+
+# never need cross-prefix when targeting the i8086
+# (no native compiler, always cross-compiling)
+#ifdef cpui8086
+#undef NEEDCROSSBINUTILS
+#endif
+
+# binutils prefix for cross compiling
+#IFDEF FPC_CROSSCOMPILING
+#IFDEF NEEDCROSSBINUTILS
+  -XP$FPCTARGET-
+#ENDIF
+#ENDIF
+
 
 # -------------
 # Linking
@@ -939,6 +1009,15 @@ defaultcfg=
 
 # generate always debugging information for GDB (slows down the compiling
 # process)
+#      -gc        generate checks for pointers
+#      -gd        use dbx
+#      -gg        use gsym
+#      -gh        use heap trace unit (for memory leak debugging)
+#      -gl        use line info unit to show more info for backtraces
+#      -gv        generates programs tracable with valgrind
+#      -gw        generate dwarf debugging info
+#
+# Enable debuginfo and use the line info unit by default
 #-gl
 
 # always pass an option to the linker
@@ -947,6 +1026,13 @@ defaultcfg=
 # Always strip debuginfo from the executable
 -Xs
 
+# Always use smartlinking on i8086, because the system unit exceeds the 64kb
+# code limit
+#ifdef cpui8086
+-CX
+-XX
+#endif
+
 
 # -------------
 # Miscellaneous
@@ -956,15 +1042,19 @@ defaultcfg=
 -l
 
 # Verbosity
-# e : Show errors (default)       d : Show debug info
-# w : Show warnings               u : Show used files
-# n : Show notes                  t : Show tried files
-# h : Show hints                  m : Show defined macros
-# i : Show general info           p : Show compiled procedures
-# l : Show linenumbers            c : Show conditionals
-# a : Show everything             0 : Show nothing (except errors)
-
-# Display Info, Warnings, Notes and Hints
+#      e : Show errors (default)       d : Show debug info
+#      w : Show warnings               u : Show unit info
+#      n : Show notes                  t : Show tried/used files
+#      h : Show hints                  s : Show time stamps
+#      i : Show general info           q : Show message numbers
+#      l : Show linenumbers            c : Show conditionals
+#      a : Show everything             0 : Show nothing (except errors)
+#      b : Write file names messages   r : Rhide/GCC compatibility mode
+#          with full path              x : Executable info (Win32 only)
+#      v : write fpcdebug.txt with     p : Write tree.log with parse tree
+#          lots of debugging info
+#
+# Display Info, Warnings and Notes
 -viwn
 # If you don't want so much verbosity use
 #-vw