# # Config file generated by fpcmkcfg on 8/11/2022 - 16:14:29 # Example fpc.cfg for Free Pascal Compiler # # ---------------------- # Defines (preprocessor) # ---------------------- # # nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed # # -d is the same as #DEFINE # -u is the same as #UNDEF # # # Some examples (for switches see below, and the -? helppages) # # Try compiling with the -dRELEASE or -dDEBUG on the commandline # # For a release compile with optimizes and strip debuginfo #IFDEF RELEASE -O2 -Xs #WRITE Compiling Release Version #ENDIF # For a debug version compile with debuginfo and all codegeneration checks on #IFDEF DEBUG -gl -Crtoi #WRITE Compiling Debug Version #ELSE # Strip debuginfo from the executable if not in debug mode -Xs #ENDIF # assembling #ifdef darwin # use pipes instead of temporary files for assembling #IFNDEF FPC_CROSSCOMPILING -ap #ENDIF #endif # ---------------- # 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 AT&T styled by default #-Ratt # Semantic checking # -S2 same as -Mobjfpc # -Sc supports operators like C (*=,+=,/= and -=) # -Sa include assertion code. # -Sd same as -Mdelphi # -Se error options. is a combination of the following: # : compiler stops after 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 set interface style to # -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 # --------------- # Code generation # --------------- # Uncomment the next line if you always want static/dynamic units by default # (can be overruled with -CD, -CS at the commandline) #-CS #-CD # Set the default heapsize to 8Mb #-Ch8000000 # Set default codegeneration checks (iocheck, overflow, range, stack) #-Ci #-Co #-Cr #-Ct # Optimizer switches # -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 switch on optimalization x. See fpc -i for possible values # -OoNO switch off optimalization x. See fpc -i for possible values # -Op set target cpu for optimizing, see fpc -i for possible values #ifdef darwin #ifdef cpui386 -Cppentiumm -Oppentiumm #endif #endif # ----------------------- # Set Filenames and Paths # ----------------------- # Both slashes and backslashes are allowed in paths # path to the messagefile, not necessary anymore but can be used to override # the default language #-FrE:\fpcupdeluxe\embeded\fpc/msg/errore.msg #-FrE:\fpcupdeluxe\embeded\fpc/msg/errorn.msg #-FrE:\fpcupdeluxe\embeded\fpc/msg/errores.msg #-FrE:\fpcupdeluxe\embeded\fpc/msg/errord.msg #-FrE:\fpcupdeluxe\embeded\fpc/msg/errorr.msg # search path for unicode binary files (FPC 2.x does not know this switch) #ifndef VER2 -FM/unicode/ #endif # Search for $fpctarget/$fpcsubarch-$fpcmemorymodel/ subdirectory first # for i8086 CPU #ifdef cpui8086 -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/$fpcsubarch-$fpcmemorymodel -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/* -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl #endif # searchpath for units and other system dependent things -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/* -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/rtl #IFDEF FPCAPACHE_1_3 -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/httpd13/ #ELSE #IFDEF FPCAPACHE_2_0 -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/httpd20 #ELSE -FuE:\fpcupdeluxe\embeded\fpc/units/$fpctarget/httpd22 #ENDIF #ENDIF # searchpath for fppkg user-specific packages -FuE:\fpcupdeluxe\embeded\packages.fppkg\units\$FPCTARGET/* # searchpath for tools -FDE:\fpcupdeluxe\embeded\fpc/bin/$FPCTARGET # path to the gcclib # searchpath for libraries #-FlE:\fpcupdeluxe\embeded\fpc/lib #-Fl/lib;/usr/lib -FlE:\fpcupdeluxe\embeded\fpc/lib/$FPCTARGET #IFNDEF CPUI386 #IFNDEF CPUAMD64 #DEFINE NEEDCROSSBINUTILS #ENDIF #ENDIF #IFNDEF Win32 #DEFINE NEEDCROSSBINUTILS #ENDIF # 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 # never need cross-prefix when targeting the i8086 # (no native compiler, always cross-compiling) #ifdef cpujvm #undef NEEDCROSSBINUTILS #endif # binutils prefix for cross compiling #IFDEF FPC_CROSSCOMPILING #IFDEF NEEDCROSSBINUTILS -XP$FPCTARGET- #ENDIF #ENDIF # ------------- # Linking # ------------- # 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 #-k-s # Always use smartlinking on i8086, because the system unit exceeds the 64kb # code limit #ifdef cpui8086 -CX -XX #endif # ------------- # Miscellaneous # ------------- # Write always a nice FPC logo ;) -l # Verbosity # 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 # begin fpcup do not remove : base settings # Adding binary tools paths to # plain bin dir and architecture bin dir so # fpc 3.1+ fpcres etc can be found. -FDE:\fpcupdeluxe\embeded\fpc\bin\i386-win32\;E:\fpcupdeluxe\embeded\fpc\ # end fpcup do not remove # begin fpcup do not remove x86_64-win64 # Inserted by fpcup 8/11/2022 16:15:16 # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF WIN64 #IFDEF CPUX86_64 # Dummy (blank) config for auto-detect cross-compilers #ENDIF CPUX86_64 #ENDIF WIN64 #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove # begin fpcup do not remove avr-embedded # Inserted by fpcup 8/11/2022 16:28:03 # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF EMBEDDED #IFDEF CPUAVR #IFDEF CPUAVR5 #ENDIF CPUAVR5 -FDE:\fpcupdeluxe\embeded\cross\bin\avr-embedded\ -XPavr-embedded- -FlE:\fpcupdeluxe\embeded\cross\lib\avr-embedded\$FPCSUBARCH\ -FuE:\fpcupdeluxe\embeded\fpc\units\avr-embedded\$FPCSUBARCH\rtl -FuE:\fpcupdeluxe\embeded\fpc\units\avr-embedded\$FPCSUBARCH\packages #ENDIF CPUAVR #ENDIF EMBEDDED #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove # begin fpcup do not remove arm-embedded # Inserted by fpcup 8/11/2022 16:30:06 # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF EMBEDDED #IFDEF CPUARM #IFDEF CPUARMV6M -CaEABI #ENDIF CPUARMV6M -FDE:\fpcupdeluxe\embeded\cross\bin\arm-embedded\ -XParm-none-eabi- -FlE:\fpcupdeluxe\embeded\cross\lib\arm-embedded\$FPCSUBARCH\$FPCABI\ -FuE:\fpcupdeluxe\embeded\fpc\units\arm-embedded\$FPCSUBARCH\$FPCABI\rtl -FuE:\fpcupdeluxe\embeded\fpc\units\arm-embedded\$FPCSUBARCH\$FPCABI\packages #ENDIF CPUARM #ENDIF EMBEDDED #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove # begin fpcup do not remove xtensa-freertos # Inserted by fpcup 8/11/2022 16:32:15 # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF FREERTOS #IFDEF CPUXTENSA #IFDEF CPULX6 -Cfhard -FDE:\fpcupdeluxe\embeded\cross\bin\xtensa-freertos\bin\ -XPxtensa-esp32-elf- -Wpesp32 -FlE:\fpcupdeluxe\embeded\cross\lib\xtensa-freertos\lx6\ -WP4.3.2 #ENDIF CPULX6 -FuE:\fpcupdeluxe\embeded\fpc\units\xtensa-freertos\$FPCSUBARCH\rtl -FuE:\fpcupdeluxe\embeded\fpc\units\xtensa-freertos\$FPCSUBARCH\packages #ENDIF CPUXTENSA #ENDIF FREERTOS #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove