mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-11 17:52:52 +02:00
221 lines
5.1 KiB
Bash
221 lines
5.1 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $Id$
|
|
# This file is part of the Free Pascal run time library.
|
|
# Copyright (c) 1996-98 by Michael van Canneyt and Peter Vreman
|
|
#
|
|
# Generate a configuration creationfile which will create /etc/ppc386.cfg
|
|
#
|
|
# Needs 4 Arguments:
|
|
# $1 = filename to create
|
|
# $2 = Path to the RTL Units (with subdirs /linuxunits /sharedunits /staticunits)
|
|
# $3 = Path to the .msg files
|
|
# $4 = Path to the GCC lib
|
|
#
|
|
if [ $# != 4 ]; then
|
|
echo 'Usage :'
|
|
echo 'makecfg filename rtlpath msgpath libgccpath'
|
|
echo 'filename = filename to create'
|
|
echo 'rtlpath = Path to the RTL Units'
|
|
echo ' (with subdirs /linuxunits /sharedunits /staticunits)'
|
|
echo 'msgpath = Path to the .msg files'
|
|
echo 'libgccpath = Path to the GCC lib'
|
|
exit 1
|
|
fi
|
|
cat <<EOFCREATE >$1
|
|
#!/bin/sh
|
|
#
|
|
# Generate Free Pascal configuration file
|
|
#
|
|
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
|
|
echo Writing sample configuration file to /etc/ppc386.cfg
|
|
cat <<EOFCFG > /etc/ppc386.cfg
|
|
#
|
|
# Example ppc386.cfg for Free Pascal Compiler Version 0.99.8
|
|
#
|
|
# Possible argument:
|
|
# \$1 = path to libgcc.a
|
|
#
|
|
|
|
# ----------------------
|
|
# 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
|
|
# -Sv allow C-variablen
|
|
|
|
# Allow goto, inline, C-operators, C-vars
|
|
-Sgicv
|
|
|
|
# ---------------
|
|
# 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$3/errore.msg
|
|
#-Fr$3/errorn.msg
|
|
|
|
# path to the gcclib
|
|
#-Fg$4
|
|
-Fg\$1
|
|
|
|
# searchpath for includefiles
|
|
#-Fi/pp/inc;/pp/rtl/inc
|
|
|
|
# searchpath for units (does the same as -Up)
|
|
# For statically, smartlinked units
|
|
#IFDEF FPC_LINK_STATIC
|
|
-Fu$2/staticunits
|
|
#ENDIF
|
|
# For Dynamically linked units
|
|
#IFDEF FPC_LINK_DYNAMIC
|
|
-Fu$2/sharedunits
|
|
#ENDIF
|
|
# For normal units
|
|
-Fu$2/linuxunits
|
|
#-Fu/pp/units;/pp/rtl/dos/go32v2
|
|
#-Fu/usr/lib/ppc/units;/usr/lib/ppc/linuxunits
|
|
|
|
# searchpath for libraries
|
|
#-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
|
|
EOFCREATE
|
|
chmod 755 $1
|