fpc stable port information

Package: fpc
Version: 2.0.4
Revision: 1
Architecture: powerpc, i386
Recommends: fpc-doc
Source: ftp://ftp.freepascal.org/pub/fpc/dist/source-%v/fpcbuild-%v.tar.gz
Source-MD5: 1ff8b80d1f5f564983bb4e1550b8b53a
Source2: ftp://ftp.freepascal.org/pub/fpc/dist/source-%v/fpc-%v.powerpc-darwin.bootstrap.tar.bz2
Source2-MD5: ca5e29e3683ff6d5caa491c0adf4635e
SourceDirectory: fpcbuild_%v_exp/fpcsrc
CompileScript: <<
#!/bin/sh -ev
# create the default fpc.cfg file
cat >%b/../../fpc.cfg < -Fu%p/lib/fpc/%v/units/powerpc-darwin/*
-Fl/usr/lib
-Fl%p/lib
-O1
-vim
EOFCFG
# compile the stuff
# ready for the native x86 compiler to be expected with version 2.2.x
# if [ "%m" = "powerpc" ]; then ppcarch="ppcppc" ; else ppcarch="ppc386" ; fi
# for now powerpc and Rosetta only
ppcarch="ppcppc"
make -C rtl PP=%b/../../$ppcarch OPT="-gl -g"
make compiler PP=%b/../../$ppcarch OPT="-gl -g"
make packages_base_all PP=%b/compiler/$ppcarch OPT="-gl -g"
make fcl PP=%b/compiler/$ppcarch OPT="-gl -g"
make packages_extra_all PP=%b/compiler/$ppcarch OPT="-gl -g"
make utils PP=%b/compiler/$ppcarch OPT="-gl -g" DATA2INC=%b/utils/data2inc
make fv ide PP=%b/compiler/$ppcarch OPT="-gl -g"
<<
InstallScript: <<
#!/bin/sh -ev
# ready for the native x86 compiler to be expected with version 2.2.x
# if [ "%m" = "powerpc" ]; then ppcarch="ppcppc" ; else ppcarch="ppc386" ; fi
# for now powerpc and Rosetta only
export GINSTALL="/usr/bin/install"
ppcarch="ppcppc"
make compiler_install INSTALL_PREFIX=%i PP=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
make rtl_install utils_install INSTALL_PREFIX=%i PP=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
ln -sf ../lib/fpc/%v/$ppcarch %i/bin/$ppcarch
make fcl_install packages_install INSTALL_PREFIX=%i PP=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
make fv_install ide_install INSTALL_PREFIX=%i PP=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
make -C ../install/man INSTALL_PREFIX=%i/share
make -C ../install/doc INSTALL_PREFIX=%i/share PP=%b/compiler/$ppcarch
mkdir %i/etc
install -c -m 644 %b/../../fpc.cfg %i/etc/
<<
ConfFiles: %p/etc/fpc.cfg
License: GPL/LGPL
Description: Free Pascal (aka FPK Pascal) compiler
DescDetail: <<
Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal
compiler. Supported processors: Intel x86, Amd64/x86 64, PowerPC, Sparc.
Supported operating systems: Linux, FreeBSD, Mac OS X/Darwin, Mac OS
classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS.

The language syntax is semantically compatible with TP 7.0 as well as most
versions of Delphi (classes, rtti, exceptions, ansistrings, widestrings,
interfaces). Furthermore, Free Pascal supports function overloading,
operator overloading, global properties and other such features.
<<
DescUsage: <<
This Pascal compiler produces PowerPC code, which runs natively on
PowerPC Macs and under Rosetta emulation on x86 Macs
get help with: fpc -?
compile and link a Pascal file with: fpc FILENAME
For setting up the Free Pascal IDE see:
http://www.freepascal.org/wiki/index.php/Textmode_IDE
For using Free Pascal with Xcode see:
http://www.surtec.com/~rj/Xcode-FreePascal
For more documentation about Free Pascal in HTML and pdf, install fpc-doc
<<
DescPort: <<
Nothing special, yet. ToDo: lazarus and extra package with dependent C libraries (gtk ...) .
<<
Homepage: http://www.freepascal.org
Maintainer: Karl-Michael Schindler

fpc _unstable_ port information

Package: fpc
Version: 2.2.2
Revision: 1
Architecture: powerpc, i386
BuildDepends: fink (>= 0.24.12)
Recommends: fpc-doc

CustomMirror: <<
eur-AT: ftp://gd.tuwien.ac.at/languages/pascal/fpc/
eur-BE: ftp://ftp.freepascal.org/pub/fpc/
eur-HU: ftp://ftp.hu.freepascal.org/pub/fpc/
eur-IL: http://mirror.mirimar.net/freepascal/
eur-NL: ftp://freepascal.stack.nl/mirrors/fpc/
eur-NO: ftp://ftp.no.freepascal.org/pub/fpc/
eur-RU: ftp://ftp.chg.ru/pub/lang/pascal/fpc/
Primary: ftp://ftp.freepascal.org/pub/fpc/
<<
Source: mirror:custom:dist/source-%v/fpcbuild-%v.tar.gz
Source-MD5: ec3d463ec9859da4122e9edfa2ab992d

Source2: mirror:custom:dist/source-%v/fpc-%v.universal-darwin.bootstrap.tar.bz2
Source2-MD5: c83b970e66468a084d6fff6c2e4a5ed1

SourceDirectory: fpcbuild-%v/fpcsrc

CompileScript: <<
#!/bin/sh -ev

# The version number of darwin (8 for 10.4 and 9 for 10.5)
# is needed for the directories of the gcc libraries
DARWINVERSION=`uname -r|cut -f1 -d.`

# create the default fpc.cfg file
cat >%b/../fpc.cfg < #
# 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
-O1
-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
#DEFINE NEEDCROSSBINUTILS

#ifdef darwin
#undef NEEDCROSSBINUTILS
#endif


#IFDEF FPC_CROSSCOMPILING
#IFDEF NEEDCROSSBINUTILS
-XP$fpctarget-
#ENDIF NEEDCROSSBINUTILS
#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 the 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)
# -St allow static keyword in objects
# -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 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

# -----------------------
# 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%p/lib/fpc/$fpcversion/msg/errore.msg
#-Fr%p/lib/fpc/$fpcversion/msg/errorn.msg

# searchpath for includefiles
#-Fi/pp/inc;/pp/rtl/inc

# searchpath for units and other system dependent things
-Fu%p/lib/fpc/%v/units/%m-darwin/*
#-Fu~/fpc/rtl/units/

# searchpath for libraries
#ifdef cpux86_64
-Fl/usr/lib/gcc/i686-apple-darwin$DARWINVERSION/4.0.1/x86_64
#endif
#ifdef cpupowerpc
-Fl/usr/lib/gcc/powerpc-apple-darwin$DARWINVERSION/4.0.1
#endif
#ifdef cpupowerpc64
-Fl/usr/lib/gcc/powerpc-apple-darwin$DARWINVERSION/4.0.1/ppc64
#endif
#ifdef cpui386
-Fl/usr/lib/gcc/i686-apple-darwin$DARWINVERSION/4.0.1
#endif
#-Fl/opt/lib
#-Fl/pp/lib
#-Fl/lib
-Fl/usr/lib
-Fl%p/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

# compile the stuff
if [ "%m" = "powerpc" ]; then ppcarch="ppcppc" ; else ppcarch="ppc386" ; fi
make all PP=%b/../../ppcuniversal
make ide PP=%b/compiler/$ppcarch
<<

InfoTest: <<
TestScript: <<
#!/bin/sh -ev
if [ "%m" = "powerpc" ]; then ppcarch="ppcppc" ; else ppcarch="ppc386" ; fi
mkdir -p freepascal-tests
cp -R rtl freepascal-tests
cp -R tests freepascal-tests
cp -R packages freepascal-tests
chmod -R 777 freepascal-tests
cd freepascal-tests/tests
sudo -u _unknown make full TEST_FPC=%b/compiler/$ppcarch FPC=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
<<
<<

InstallScript: <<
#!/bin/sh -ev
if [ "%m" = "powerpc" ]; then ppcarch="ppcppc" ; else ppcarch="ppc386" ; fi
make install INSTALL_PREFIX=%i PP=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
ln -sf ../lib/fpc/%v/$ppcarch %i/bin/$ppcarch
make ide_install INSTALL_PREFIX=%i PP=%b/compiler/$ppcarch FPCMAKE=%b/utils/fpcm/fpcmake
make -C ../install/man INSTALL_PREFIX=%i/share
make -C ../install/doc INSTALL_PREFIX=%i/share PP=%b/compiler/$ppcarch
mkdir %i/etc
install -c -m 644 %b/../fpc.cfg %i/etc/
<<

ConfFiles: %p/etc/fpc.cfg

RuntimeVars: <<
FPCDIR: %p
PPC_CONFIG_PATH: %p/etc/
<<

License: GPL/LGPL

Description: Free Pascal (aka FPK Pascal) compiler

DescDetail: <<
Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal
compiler. Supported processors: Intel x86, Amd64/x86 64, PowerPC,
Sparc, ARM.
Supported operating systems: Linux, FreeBSD, Mac OS X/Darwin,
Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS.

The language syntax has excellent compatibility with TP 7.0 as well as
with most versions of Delphi (classes, rtti, exceptions, ansistrings,
widestrings, interfaces). A Mac Pascal compatibility mode is also provided
to assist users of previous Pascal compilers for the Mac.
Furthermore, Free Pascal supports function overloading, operator
overloading, global properties and other modern features.

http://wiki.freepascal.org/User_Changes_2.2.2 also lists changes in fpc 2.2.2.
<<

DescUsage: <<
This Pascal compiler produces PowerPC and x86 executables, which run
natively on PowerPC and x86 Macs. PowerPC executables also runs in
Rosetta emulation on x86 Macs.
Use lipo to combine PowerPC and x86 binaries to universal binaries.
get help with: fpc -h
compile and link a Pascal file with: fpc FILENAME

fink installs a new fpc.cfg file in /sw/etc/ and sets environment variables.
Clear this with "fink purge fpc".
"fink remove fpc" does not change this.

For setting up the Free Pascal IDE see:
http://www.freepascal.org/wiki/index.php/Textmode_IDE
For using Free Pascal with Xcode see:
http://www.freepascal.org/xcode.html

With "fink --test rebuild fpc" the test suite of the compiler is executed.
This takes quite some time, in particular on slow machines.
Expect a small number of failed tests.

For more documentation about Free Pascal in HTML and pdf, install fpc-doc
<<

DescPort: <<
New:
1) fpc.cfg file in /sw/etc and setting FPCDIR and PPC_CONFIG_PATH.
2) execution of the test suite with "fink --test rebuild fpc".
Still to do: universal binaries and
extra packages with dependent C libraries (gtk ...) .
<<

Homepage: http://www.freepascal.org
Maintainer: Karl-Michael Schindler