mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 10:19:31 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			237 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			237 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
#  $Id$
 | 
						|
#
 | 
						|
#  Generate Sample Free Pascal configuration file
 | 
						|
#
 | 
						|
if [ $# != 1 ]; then
 | 
						|
  echo 'Usage :'
 | 
						|
  echo 'samplecfg fpcdir'
 | 
						|
  echo 'fpcdir = Path where FPC is installed'
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
if [ -f /etc/ppc386.cfg ] ; then
 | 
						|
  mv /etc/ppc386.cfg /etc/ppc386.orig  >/dev/null 2>&1
 | 
						|
  if [ $? == 0 ]; then
 | 
						|
    echo Saved old config to /etc/ppc386.orig
 | 
						|
  else
 | 
						|
    echo Could not save old config. Bailing out...
 | 
						|
  fi
 | 
						|
fi
 | 
						|
 | 
						|
# Find path to libgcc.a
 | 
						|
GCCSPEC=`(gcc -v 2>&1)| head -n 1| awk '{ print $4 } '`
 | 
						|
GCCDIR=`dirname $GCCSPEC`
 | 
						|
echo Found libgcc.a in $GCCDIR
 | 
						|
 | 
						|
# Write the file
 | 
						|
echo Writing sample configuration file to /etc/ppc386.cfg
 | 
						|
cat <<EOFCFG > /etc/ppc386.cfg
 | 
						|
#
 | 
						|
# Example ppc386.cfg for Free Pascal Compiler Version 0.99.12
 | 
						|
#
 | 
						|
 | 
						|
# ----------------------
 | 
						|
# Defines (preprocessor)
 | 
						|
# ----------------------
 | 
						|
 | 
						|
#
 | 
						|
# nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed
 | 
						|
#
 | 
						|
# -d is the same as #DEFINE
 | 
						|
# -u is the same as #UNDEF
 | 
						|
#
 | 
						|
 | 
						|
# When not m68k is defined at the commandline, define i386
 | 
						|
#IFNDEF m68k
 | 
						|
  #DEFINE i386
 | 
						|
#ENDIF
 | 
						|
 | 
						|
#
 | 
						|
# 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
 | 
						|
  -OG2p2
 | 
						|
  -Xs
 | 
						|
  #WRITE Compiling Release Version
 | 
						|
#ENDIF
 | 
						|
 | 
						|
# For a debug version compile with debuginfo and all codegeneration checks on
 | 
						|
#IFDEF DEBUG
 | 
						|
  -g
 | 
						|
  -Crtoi
 | 
						|
  #WRITE Compiling Debug Version
 | 
						|
#ENDIF
 | 
						|
 | 
						|
# ----------------
 | 
						|
# Parsing switches
 | 
						|
# ----------------
 | 
						|
 | 
						|
# All assembler blocks are intel styled by default
 | 
						|
#-Rintel
 | 
						|
 | 
						|
# All assembler blocks are AT&T styled by default
 | 
						|
#-Ratt
 | 
						|
 | 
						|
# Semantic checking
 | 
						|
# -S2   switch some Delphi 2 extension on
 | 
						|
# -Sc   supports operators like C (*=,+=,/= and -=)
 | 
						|
# -Sg   allows LABEL and GOTO
 | 
						|
# -Si   support C++ stlyed INLINE
 | 
						|
# -Sm   support macros like C (global)
 | 
						|
# -So   tries to be TP/BP 7.0 compatible
 | 
						|
# -Ss   constructor name must be init (destructor must be done)
 | 
						|
# -St   allows static keyword in objects
 | 
						|
 | 
						|
# 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
 | 
						|
# -Og        generate smaller code
 | 
						|
# -OG        generate faster code (default)
 | 
						|
# -Or        keep certain variables in registers (still BUGGY!!!)
 | 
						|
# -Ou        enable uncertain optimizations (see docs)
 | 
						|
# -O1        level 1 optimizations (quick optimizations)
 | 
						|
# -O2        level 2 optimizations (-O1 + slower optimizations)
 | 
						|
# -O3        level 3 optimizations (same as -O2u)
 | 
						|
# -Op        target processor
 | 
						|
#     -Op1  set target processor to 386/486
 | 
						|
#     -Op2  set target processor to Pentium/PentiumMMX (tm)
 | 
						|
#     -Op3  set target processor to PPro/PII/c6x86/K6 (tm)
 | 
						|
 | 
						|
# Optimize always for Size and Pentium
 | 
						|
#-OG2p2
 | 
						|
 | 
						|
 | 
						|
# -----------------------
 | 
						|
# Set Filenames and Paths
 | 
						|
# -----------------------
 | 
						|
 | 
						|
# Slashes are also allowed under dos
 | 
						|
 | 
						|
# path to the messagefile, not necessary anymore but can be used to override
 | 
						|
# the default language
 | 
						|
#-Fr$1/msg/errore.msg
 | 
						|
#-Fr$1/msg/errorn.msg
 | 
						|
 | 
						|
# searchpath for includefiles
 | 
						|
#-Fi/pp/inc;/pp/rtl/inc
 | 
						|
 | 
						|
# searchpath for units and other system dependent things
 | 
						|
#IFDEF Go32V1
 | 
						|
  #IFDEF FPC_LINK_STATIC
 | 
						|
    -Fu$1/rtl/go32v1/static
 | 
						|
    -Fu$1/units/go32v1/static
 | 
						|
  #ENDIF
 | 
						|
  -Fu$1/rtl/go32v1
 | 
						|
  -Fu$1/units/go32v1
 | 
						|
#ENDIF
 | 
						|
#IFDEF Go32V2
 | 
						|
  #IFDEF FPC_LINK_STATIC
 | 
						|
    -Fu$1/rtl/go32v2/static
 | 
						|
    -Fu$1/units/go32v2/static
 | 
						|
  #ENDIF
 | 
						|
  -Fu$1/rtl/go32v2
 | 
						|
  -Fu$1/units/go32v2
 | 
						|
#ENDIF
 | 
						|
#IFDEF Win32
 | 
						|
  #IFDEF FPC_LINK_STATIC
 | 
						|
    -Fu$1/rtl/win32/static
 | 
						|
    -Fu$1/units/win32/static
 | 
						|
  #ENDIF
 | 
						|
  -Fu$1/rtl/win32
 | 
						|
  -Fu$1/units/win32
 | 
						|
#ENDIF
 | 
						|
#IFDEF OS2
 | 
						|
  #IFDEF FPC_LINK_STATIC
 | 
						|
    -Fu$1/rtl/os2/static
 | 
						|
    -Fu$1/units/os2/static
 | 
						|
  #ENDIF
 | 
						|
  -Fu$1/rtl/os2
 | 
						|
  -Fu$1/units/os2
 | 
						|
#ENDIF
 | 
						|
#IFDEF Linux
 | 
						|
  # For statically, smartlinked units
 | 
						|
  #IFDEF FPC_LINK_STATIC
 | 
						|
    -Fu$1/rtl/linux/static
 | 
						|
    -Fu$1/units/linux/static
 | 
						|
  #ENDIF
 | 
						|
  # For Dynamically linked units
 | 
						|
  #IFDEF FPC_LINK_DYNAMIC
 | 
						|
    -Fu$1/rtl/linux/shared
 | 
						|
    -Fu$1/units/linux/shared
 | 
						|
  #ENDIF
 | 
						|
  -Fu$1/rtl/linux
 | 
						|
  -Fu$1/units/linux
 | 
						|
  #-Fu~/pp/units;~/pp/rtl/linux
 | 
						|
  #-Fu/usr/lib/fpc/0.99.12/units;/usr/lib/fpc/0.99.12/rtl
 | 
						|
#ENDIF
 | 
						|
 | 
						|
# searchpath for libraries
 | 
						|
-Fl$GCCDIR
 | 
						|
#-Fl/pp/lib
 | 
						|
#-Fl/lib;/usr/lib
 | 
						|
 | 
						|
 | 
						|
# -------------
 | 
						|
# Linking
 | 
						|
# -------------
 | 
						|
 | 
						|
# generate always debugging information for GDB (slows down the compiling
 | 
						|
# process)
 | 
						|
#-g
 | 
						|
 | 
						|
# always pass an option to the linker
 | 
						|
#-k-s
 | 
						|
 | 
						|
# Always strip debuginfo from the executable
 | 
						|
-Xs
 | 
						|
 | 
						|
 | 
						|
# -------------
 | 
						|
# Miscellaneous
 | 
						|
# -------------
 | 
						|
 | 
						|
# Write always a nice FPC logo ;)
 | 
						|
-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
 | 
						|
-viwnh
 | 
						|
# If you don't want so much verbosity use
 | 
						|
#-vw
 | 
						|
 | 
						|
#
 | 
						|
# That's all folks
 | 
						|
#
 | 
						|
EOFCFG
 |