mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 22:29:28 +02:00
* Samplecfg now uses fpcmkcfg to create the configuration files
git-svn-id: trunk@17148 -
This commit is contained in:
parent
3a12f018f4
commit
3c6bb40c52
@ -5,30 +5,6 @@
|
||||
# Generate Sample Free Pascal configuration file
|
||||
#
|
||||
|
||||
setgccdir() {
|
||||
# Find path to libgcc.a
|
||||
GCCSPEC=`(gcc -v $@ 2>&1)| head -n 1| awk '{ print $4 } '`
|
||||
if [ -z "$GCCSPEC" ] ; then
|
||||
GCCSPEC=`gcc -print-libgcc-file-name $@ 2>/dev/null`
|
||||
fi
|
||||
GCCDIR=`dirname "$GCCSPEC"`
|
||||
}
|
||||
|
||||
|
||||
setgccdirarch() {
|
||||
# First argument is fpc define for CPU type; remaining args are passed to gcc to set corresponding architecture
|
||||
FPCDEFINE=$1
|
||||
shift
|
||||
setgccdir $@
|
||||
|
||||
if [ -z "$GCCDIR" ] ; then
|
||||
return
|
||||
fi
|
||||
GCCDIR="#ifdef $FPCDEFINE
|
||||
-Fl$GCCDIR
|
||||
#endif"
|
||||
}
|
||||
|
||||
HOSTOS=`uname -s | tr A-Z a-z`
|
||||
echo Running on $HOSTOS
|
||||
|
||||
@ -50,7 +26,6 @@ FPBIN=`dirname "$1"`/../../bin/fp
|
||||
sysfpdirbase=`dirname "$1"`/`"$FPCBIN" -iV`
|
||||
sysfpdirbase2=$sysfpdirbase/ide
|
||||
sysfpdir=$sysfpdirbase2/text
|
||||
fpctargetos=`"$FPCBIN" -iTO`
|
||||
|
||||
# Detect if we have write permission in sysdir.
|
||||
if [ -w "$sysdir" ] ; then
|
||||
@ -128,329 +103,12 @@ if [ -f "$FPBIN" ] ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
setgccdir
|
||||
GCCDIR2=""
|
||||
GCCDIR3=""
|
||||
GCCDIR4=""
|
||||
|
||||
singlearch() {
|
||||
if [ -d "$GCCDIR" ]; then
|
||||
echo Found libgcc.a in "$GCCDIR"
|
||||
GCCDIR=-Fl$GCCDIR
|
||||
fi
|
||||
}
|
||||
|
||||
# include ports tree dir for FreeBSDers.
|
||||
case "$HOSTOS" in
|
||||
freebsd)
|
||||
GCCDIR=-Fl/usr/local/lib
|
||||
;;
|
||||
openbsd)
|
||||
GCCDIR=-Fl/usr/local/lib
|
||||
;;
|
||||
netbsd)
|
||||
GCCDIR=-Fl/usr/pkg/lib
|
||||
;;
|
||||
darwin)
|
||||
setgccdirarch cpupowerpc -arch ppc
|
||||
GCCDIR2="$GCCDIR"
|
||||
setgccdirarch cpupowerpc64 -arch ppc64
|
||||
GCCDIR3="$GCCDIR"
|
||||
setgccdirarch cpui386 -arch i386
|
||||
GCCDIR4="$GCCDIR"
|
||||
setgccdirarch cpux86_64 -arch x86_64
|
||||
;;
|
||||
linux)
|
||||
case `"$FPCBIN" -PP` in
|
||||
i?86|x86_64|amd64)
|
||||
# Allow for the possibility of both 32 and 64 bit compilation on same system
|
||||
setgccdirarch cpui386 -m32
|
||||
GCCDIR4="$GCCDIR"
|
||||
setgccdirarch cpux86_64 -m64
|
||||
;;
|
||||
powerpc|powerpc64)
|
||||
# Allow for the possibility of both 32 and 64 bit compilation on same system
|
||||
setgccdirarch cpupowerpc -m32
|
||||
GCCDIR4="$GCCDIR"
|
||||
setgccdirarch cpupowerpc64 -m64
|
||||
;;
|
||||
# Add cases for other linux dual architectures here
|
||||
*) singlearch # Default
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
*) singlearch
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
CPUCROSSIFDEF1="#DEFINE NEEDCROSSBINUTILS"
|
||||
CPUCROSSIFDEF2=""
|
||||
|
||||
case `"$FPCBIN" -PP` in
|
||||
i?86|x86_64|amd64)
|
||||
# Cross-binutils are not needed to compile for i386 on an x86_64 system
|
||||
CPUCROSSIFDEF1="
|
||||
#IFNDEF CPUI386
|
||||
#IFNDEF CPUAMD64
|
||||
#DEFINE NEEDCROSSBINUTILS
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
"
|
||||
CPUCROSSIFDEF2="
|
||||
#IFNDEF $HOSTOS
|
||||
#DEFINE NEEDCROSSBINUTILS
|
||||
#ENDIF
|
||||
"
|
||||
;;
|
||||
*)
|
||||
CPUCROSSIFDEF1="#DEFINE NEEDCROSSBINUTILS"
|
||||
CPUCROSSIFDEF2=""
|
||||
;;
|
||||
esac
|
||||
|
||||
# darwin->darwin does not need cross binutils
|
||||
case "$HOSTOS" in
|
||||
darwin)
|
||||
CPUCROSSIFDEF2="
|
||||
#ifdef darwin
|
||||
#undef NEEDCROSSBINUTILS
|
||||
#endif
|
||||
"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# set right path to FPC with $fpcversion
|
||||
FPCPATH=`dirname "$1"`/\$fpcversion
|
||||
|
||||
# Write (.)fpc.cfg
|
||||
echo Writing sample configuration file to $fpccfgfile
|
||||
cat <<EOFCFG > $fpccfgfile
|
||||
#
|
||||
# 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
|
||||
-g
|
||||
-Crtoi
|
||||
#WRITE Compiling Debug Version
|
||||
#ENDIF
|
||||
|
||||
# set binutils prefix
|
||||
$CPUCROSSIFDEF1
|
||||
$CPUCROSSIFDEF2
|
||||
|
||||
#IFDEF FPC_CROSSCOMPILING
|
||||
#IFDEF NEEDCROSSBINUTILS
|
||||
-XP\$fpctarget-
|
||||
#ENDIF NEEDCROSSBINUTILS
|
||||
#ENDIF
|
||||
|
||||
# assembling
|
||||
#ifdef darwin
|
||||
# use pipes instead of temporary files for assembling
|
||||
-ap
|
||||
#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<x> error options. <x> is a combination of the following:
|
||||
# <n> : compiler stops after the <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
|
||||
|
||||
# ---------------
|
||||
# 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
|
||||
# -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)
|
||||
# -Op<x> set target cpu for optimizing, see fpc -i for possible values
|
||||
#
|
||||
# See "fpc -i" also for more fine-grained control over which optimizations
|
||||
# to perform
|
||||
|
||||
#ifdef darwin
|
||||
#ifdef cpui386
|
||||
-Cppentiumm
|
||||
-Oppentiumm
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# -----------------------
|
||||
# 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$FPCPATH/msg/errore.msg
|
||||
#-Fr$FPCPATH/msg/errorn.msg
|
||||
|
||||
# searchpath for units and other system dependent things
|
||||
-Fu$FPCPATH/units/\$fpctarget
|
||||
-Fu$FPCPATH/units/\$fpctarget/*
|
||||
-Fu$FPCPATH/units/\$fpctarget/rtl
|
||||
#-Fu~/fpc/packages/base/*/units/$fpctarget;~/fpc/fcl/units/$fpctarget;~/fpc/rtl/units/$fpctarget
|
||||
|
||||
#IFDEF FPCAPACHE_1_3
|
||||
-Fu$FPCPATH/units/\$fpctarget/httpd13/
|
||||
#ELSE
|
||||
#IFDEF FPCAPACHE_2_0
|
||||
-Fu$FPCPATH/units/\$fpctarget/httpd20
|
||||
#ELSE
|
||||
-Fu$FPCPATH/units/\$fpctarget/httpd22
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
|
||||
# searchpath for libraries
|
||||
$GCCDIR
|
||||
$GCCDIR2
|
||||
$GCCDIR3
|
||||
$GCCDIR4
|
||||
#-Fl/pp/lib
|
||||
#-Fl/lib;/usr/lib
|
||||
|
||||
|
||||
# -------------
|
||||
# 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 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 unit info
|
||||
# n : Show notes t : Show tried/used files
|
||||
# h : Show hints c : Show conditionals
|
||||
# i : Show general info d : Show debug info
|
||||
# l : Show linenumbers r : Rhide/GCC compatibility mode
|
||||
# a : Show everything x : Executable info (Win32 only)
|
||||
# b : Write file names messages with full path
|
||||
# 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
|
||||
|
||||
#
|
||||
# That's all folks
|
||||
#
|
||||
EOFCFG
|
||||
fpcmkcfg -d "basepath=$FPCPATH" -o $fpccfgfile
|
||||
|
||||
if ! [ -f "$FPBIN" ] ; then
|
||||
exit
|
||||
@ -458,132 +116,8 @@ fi
|
||||
|
||||
# Write fp.cfg
|
||||
echo Writing sample configuration file to $fpcfgfile
|
||||
cat <<EOFFPCFG > $fpcfgfile
|
||||
#IFDEF NORMAL
|
||||
-Ci
|
||||
-XS
|
||||
-T$fpctargetos
|
||||
-Sg
|
||||
-O1
|
||||
-Fu$FPCPATH/units/\$fpctarget
|
||||
-Fu$FPCPATH/units/\$fpctarget\*
|
||||
-Fu$FPCPATH/units/\$fpctarget\rtl
|
||||
$GCCDIR
|
||||
$GCCDIR2
|
||||
$GCCDIR3
|
||||
$GCCDIR4
|
||||
-g-
|
||||
-p-
|
||||
-b-
|
||||
#ENDIF
|
||||
|
||||
#IFDEF DEBUG
|
||||
-Ci
|
||||
-XS
|
||||
-T$fpctargetos
|
||||
-Sg
|
||||
-Cr
|
||||
-Co
|
||||
-Fu$FPCPATH/units/\$fpctarget
|
||||
-Fu$FPCPATH/units/\$fpctarget\*
|
||||
-Fu$FPCPATH/units/\$fpctarget\rtl
|
||||
$GCCDIR
|
||||
$GCCDIR2
|
||||
$GCCDIR3
|
||||
$GCCDIR4
|
||||
-g
|
||||
-p-
|
||||
-b-
|
||||
#ENDIF
|
||||
|
||||
#IFDEF RELEASE
|
||||
-XS
|
||||
-T$fpctargetos
|
||||
-Sg
|
||||
-O2
|
||||
-Fu$FPCPATH/units/\$fpctarget
|
||||
-Fu$FPCPATH/units/\$fpctarget\*
|
||||
-Fu$FPCPATH/units/\$fpctarget\rtl
|
||||
$GCCDIR
|
||||
$GCCDIR2
|
||||
$GCCDIR3
|
||||
$GCCDIR4
|
||||
-g-
|
||||
-p-
|
||||
-b-
|
||||
#ENDIF
|
||||
EOFFPCFG
|
||||
fpcmkcfg -1 -d "basepath=$FPCPATH" -o $fpcfgfile
|
||||
|
||||
# Write fp.ini
|
||||
echo Writing sample configuration file to $fpinifile
|
||||
cat <<EOFFPINI > $fpinifile
|
||||
[Compile]
|
||||
CompileMode=DEBUG
|
||||
|
||||
[Editor]
|
||||
DefaultTabSize=8
|
||||
DefaultFlags=20599
|
||||
DefaultSaveExt=.pas
|
||||
DefaultIndentSize=1
|
||||
|
||||
[Highlight]
|
||||
Exts="*.pas;*.pp;*.inc"
|
||||
NeedsTabs="make*;make*.*"
|
||||
|
||||
[SourcePath]
|
||||
SourceList=""
|
||||
|
||||
[Mouse]
|
||||
DoubleDelay=8
|
||||
ReverseButtons=0
|
||||
AltClickAction=6
|
||||
CtrlClickAction=1
|
||||
|
||||
[Search]
|
||||
FindFlags=4
|
||||
|
||||
[Breakpoints]
|
||||
Count=0
|
||||
|
||||
[Watches]
|
||||
Count=0
|
||||
|
||||
[Preferences]
|
||||
DesktopFileFlags=209
|
||||
CenterCurrentLineWhileDebugging=1
|
||||
AutoSaveFlags=7
|
||||
MiscOptions=6
|
||||
DesktopLocation=1
|
||||
|
||||
[Misc]
|
||||
ShowReadme=1
|
||||
|
||||
[Files]
|
||||
OpenExts="*.pas;*.pp;*.inc"
|
||||
|
||||
[Tools]
|
||||
Title1="svn ~u~p (curr. dir)"
|
||||
Program1="svn"
|
||||
Params1="up \$CAP_MSG()"
|
||||
HotKey1=23296
|
||||
Title2="svn c~i~ (curr. dir)"
|
||||
Program2="svn"
|
||||
Params2="ci \$CAP_MSG()"
|
||||
HotKey2=23552
|
||||
Title3="svn ~d~iff"
|
||||
Program3="svn"
|
||||
Params3="diff \$CAP_MSG() \$EDNAME"
|
||||
HotKey3=23808
|
||||
Title4="svn ~l~og"
|
||||
Program4="svn"
|
||||
Params4="log \$CAP_MSG() \$EDNAME"
|
||||
HotKey4=34560
|
||||
Title5="svn ~b~lame"
|
||||
Program5="svn"
|
||||
Params5="blame \$CAP_MSG() \$EDNAME"
|
||||
HotKey5=34816
|
||||
Title6="svn ~a~dd"
|
||||
Program6="svn"
|
||||
Params6="add \$CAP_MSG() \$EDNAME"
|
||||
HotKey6=0'
|
||||
EOFFPINI
|
||||
fpcmkcfg -2 -o $fpinifile
|
||||
|
Loading…
Reference in New Issue
Block a user