From: Alexey Tourbin <at@altlinux.ru>
To: ALT Linux Sisyphus discussion list <sisyphus@lists.altlinux.org>
Subject: [sisyphus] Re: fpc&lazarus [-]
Date: Wed, 19 Oct 2005 20:40:23 +0400
Message-ID: <20051019164023.GQ7934@solemn.turbinal.org> (raw)
In-Reply-To: <200510191708.24820.led@ukr-fin.com.ua>
[-- Attachment #1.1: Type: text/plain, Size: 531 bytes --]
On Wed, Oct 19, 2005 at 05:08:24PM +0300, Led wrote:
> Есть ряд ответов:) В частности, на предмет сборки документации в пакете
> (изначально make docs не работает, нужны минимальные правки). Сейчас немного
Это я уже подкрутил. Надо договориться, что fpc-2.0 буду выкладывать я,
а то все будут делать двойную работу. Я даже реализовал поиск
зависимостей на основе контрольной суммы интерфейса .ppu файлов. Я пока
просто выкладывать не хочу, т.к. надо определиться с gdb, и ещё
несколько мелочей нужно довести до ума.
[-- Attachment #1.2: fpc2.req --]
[-- Type: text/plain, Size: 445 bytes --]
#!/bin/sh -ef
atexit()
{
local rc=$?
trap - EXIT
rm -f "$tmpfile"
exit $rc
}
tmpfile=`mktemp -t fpc2req.XXXXXXXX`
trap atexit EXIT HUP INT QUIT PIPE TERM
cat >"$tmpfile"
: ${PPUDUMP:=ppudump}
while read -r file; do
[ -n "$file" -a -z "${file##*.ppu}" ] || continue
$PPUDUMP -vi "$file" |awk '/^Uses unit:/{ sub(")$","");
printf "fpc2(%s) = %s\n", tolower($3), $NF }'
done <"$tmpfile"
/usr/lib/rpm/find-requires ${1+"$@"} <"$tmpfile"
[-- Attachment #1.3: fpc2.prov --]
[-- Type: text/plain, Size: 475 bytes --]
#!/bin/sh -ef
atexit()
{
local rc=$?
trap - EXIT
rm -f "$tmpfile"
exit $rc
}
tmpfile=`mktemp -t fpc2prov.XXXXXXXX`
trap atexit EXIT HUP INT QUIT PIPE TERM
cat >"$tmpfile"
: ${PPUDUMP:=ppudump}
while read -r file; do
[ -n "$file" -a -z "${file##*.ppu}" ] || continue
$PPUDUMP -vh "$file" |awk -v ppu="$(basename "$file" .ppu)" \
'/^Interface Checksum/{printf "fpc2(%s) = %s\n", tolower(ppu), $NF}'
done <"$tmpfile"
/usr/lib/rpm/find-provides ${1+"$@"} <"$tmpfile"
[-- Attachment #1.4: fpc20.spec --]
[-- Type: text/plain, Size: 11196 bytes --]
Name: fpc
Version: 2.0.0
Release: alt1
Summary: Free Pascal Compiler
License: GPL
Group: Development/Other
URL: http://www.freepascal.org
Source0: %name-%version.tar.bz2
Source1: fpc2.req
Source2: fpc2.prov
Patch0: %name-2.0.0-alt-fpcdir.patch
Patch1: %name-2.0.0-alt-smartlink-ld.patch
ExclusiveOS: Linux
ExclusiveArch: %ix86
# Added by buildreq2 on Sat Oct 15 2005
BuildRequires: fpc ghostscript-module-X latex2html libgpm-devel libncurses-devel netpbm
%description
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible
32/64-bit Pascal Compiler. It comes with a fully compatible TP 7.0
runtime library. Some extensions are added to the language, like
function overloading. Basic Delphi support is already implemented
(classes, exceptions, ansistrings).
%prep
%setup -q -n %name
%patch0 -p1
%patch1 -p1
%build
# bootstrap
%make_build -C compiler cycle RELEASE=1
%__cp -pvf compiler/ppc386 ppc386
%define fpc_build %make_build clean all FPC=$PWD/ppc386 RELEASE=1
%fpc_build -C rtl CREATESMART=1
%fpc_build -C compiler LINKSMART=1 msg2inc
%fpc_build -C packages/base CREATESMART=1
%fpc_build -C fcl CREATESMART=1
%fpc_build -C utils LINKSMART=1 DATA2INC=$PWD/utils/data2inc
%fpc_build -C packages/extra CREATESMART=1
%fpc_build -C fv CREATESMART=1
%fpc_build -C ide LINKSMART=1
%define fpc_build_win32 %make_build all FPC=$PWD/ppc386 RELEASE=1 OS_TARGET=win32 BINUTILSPREFIX=i386-mingw32msvc-
%fpc_build_win32 -C rtl CREATESMART=1
%fpc_build_win32 -C packages/base CREATESMART=1
%fpc_build_win32 -C fcl CREATESMART=1
(cd docs; sh tex2htex; touch refex.chk progex.chk)
%__subst -p 's/2\\$/2 \\/;s/--warn-no-node//g' docs/Makefile*
%make_build -C docs html USEL2H=1 FPDOC=$PWD/utils/fpdoc/fpdoc
%install
%define installdirs INSTALL_BINDIR=%buildroot%_bindir INSTALL_BASEDIR=%buildroot%_libdir/fpc2 INSTALL_DOCDIR=%buildroot%_docdir/fpc2
%define fpc_install %make_install distinstall FPC=$PWD/ppc386 FPCMAKE=$PWD/utils/fpcm/fpcmake %installdirs
%fpc_install -C rtl
%fpc_install -C compiler
%fpc_install -C packages/base
%fpc_install -C fcl
%fpc_install -C utils CODPATH=%buildroot%_libdir/fpc2/lexyacc
%fpc_install -C packages/extra
%fpc_install -C fv
%fpc_install -C ide
%define fpc_install_win32 %make_install install FPC=$PWD/ppc386 FPCMAKE=$PWD/utils/fpcm/fpcmake OS_TARGET=win32 INSTALL_BASEDIR=%buildroot%_libdir/fpc2
%fpc_install_win32 -C rtl
%fpc_install_win32 -C packages/base
%fpc_install_win32 -C fcl
# this symbolic link must be absolute
%__ln_s %_libdir/fpc2/ppc386 %buildroot%_bindir/ppc386
%__mkdir_p %buildroot%_man1dir %buildroot%_man5dir
%__install -p -m755 install/man/man1/*.1 %buildroot%_man1dir
%__install -p -m755 install/man/man5/*.5 %buildroot%_man5dir
%define pkgdocdir %_docdir/%name-%version
%__mkdir_p %buildroot%pkgdocdir
%__cp -a docs/{ref,rtl,user,prog} %buildroot%pkgdocdir
%__install -pD -m755 %SOURCE1 %buildroot%_prefix/lib/rpm/fpc2.req
%__install -pD -m755 %SOURCE2 %buildroot%_prefix/lib/rpm/fpc2.prov
%define __find_requires PPUDUMP=%buildroot%_bindir/ppudump %buildroot%_prefix/lib/rpm/fpc2.req
%define __find_provides PPUDUMP=%buildroot%_bindir/ppudump %buildroot%_prefix/lib/rpm/fpc2.prov
%files
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/rtl
%_bindir/fpc
%_bindir/ppc386
%_bindir/fpcmake
%_bindir/ppudump
%_libdir/fpc2/msg
%_libdir/fpc2/ppc386
%_libdir/fpc2/samplecfg
%_prefix/lib/rpm/fpc2.req
%_prefix/lib/rpm/fpc2.prov
%_man1dir/fpc.*
%_man1dir/ppc386.*
%_man1dir/fpcmake.*
%_man1dir/ppudump.*
%_man5dir/fpc.*
%_man5dir/fpcmake.*
# utils
%package utils
Summary: utils
Group: Development/Other
Requires: %name = %version-%release
%description utils
utils
%files utils
%_bindir/*
%exclude %_bindir/fpc
%exclude %_bindir/ppc386
%exclude %_bindir/fpcmake
%exclude %_bindir/ppudump
%_man1dir/*.*
%exclude %_man1dir/fpc.*
%exclude %_man1dir/ppc386.*
%exclude %_man1dir/fpcmake.*
%exclude %_man1dir/ppudump.*
%_man5dir/*.*
%exclude %_man5dir/fpc.*
%exclude %_man5dir/fpcmake.*
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/lexyacc
%_libdir/fpc2/units/i386-linux/lexyacc
# packages/base
%package packages
Summary: packages
Group: Development/Other
Requires: %name = %version-%release
%description packages
packages
%files packages
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/gdbint
%_libdir/fpc2/units/i386-linux/ibase
%_libdir/fpc2/units/i386-linux/libasync
%_libdir/fpc2/units/i386-linux/libc
%_libdir/fpc2/units/i386-linux/md5
%_libdir/fpc2/units/i386-linux/mysql
%_libdir/fpc2/units/i386-linux/netdb
%_libdir/fpc2/units/i386-linux/odbc
%_libdir/fpc2/units/i386-linux/oracle
%_libdir/fpc2/units/i386-linux/pasjpeg
%_libdir/fpc2/units/i386-linux/paszlib
%_libdir/fpc2/units/i386-linux/postgres
%_libdir/fpc2/units/i386-linux/pthreads
%_libdir/fpc2/units/i386-linux/regexpr
%_libdir/fpc2/units/i386-linux/sqlite
# fcl
%package fcl
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description fcl
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible
32/64-bit Pascal Compiler. It comes with a fully compatible TP 7.0
runtime library. This package contains the Free Component Library for
the Free Pascal Compiler.
%files fcl
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/fcl
# packages/extra/x11
%package x11
Summary: x11
Group: Development/Other
Requires: %name = %version-%release
%description x11
%files x11
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/x11
# packages/extra/opengl
%package opengl
Summary: opengl
Group: Development/Other
Requires: %name = %version-%release
%description opengl
%files opengl
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/opengl
# packages/extra/fpgtk
%package fpgtk
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description fpgtk
fpgtk
%files fpgtk
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/fpgtk
# packages/extra/gnome
%package gnome
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description gnome
gnome
%files gnome
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/gnome
# packages/extra/gtk
%package gtk
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description gtk
gtk
%files gtk
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/gtk
# packages/extra/gtk2
%package gtk2
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description gtk2
gtk2
%files gtk2
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/gtk2
# packages/extra
%package extra
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description extra
extra
%files extra
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/bfd
%_libdir/fpc2/units/i386-linux/cdrom
%_libdir/fpc2/units/i386-linux/forms
%_libdir/fpc2/units/i386-linux/gconf
%_libdir/fpc2/units/i386-linux/gdbm
%_libdir/fpc2/units/i386-linux/ggi
%_libdir/fpc2/units/i386-linux/imlib
%_libdir/fpc2/units/i386-linux/libgd
%_libdir/fpc2/units/i386-linux/libpng
%_libdir/fpc2/units/i386-linux/ncurses
%_libdir/fpc2/units/i386-linux/newt
%_libdir/fpc2/units/i386-linux/svgalib
%_libdir/fpc2/units/i386-linux/syslog
%_libdir/fpc2/units/i386-linux/tcl
%_libdir/fpc2/units/i386-linux/unixutil
%_libdir/fpc2/units/i386-linux/unzip
%_libdir/fpc2/units/i386-linux/utmp
%_libdir/fpc2/units/i386-linux/zlib
%_libdir/fpc2/units/i386-linux/zvt
# fv
%package fv
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description fv
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible
32/64-bit Pascal Compiler. It comes with a fully compatible TP 7.0
runtime library. Some extensions are added to the language, like
function overloading. This package contains the Integrated Development
Environment (IDE).
%files fv
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-linux
%_libdir/fpc2/units/i386-linux/fv
# ide
%package ide
Summary: Free Component Library for Free Pascal
Group: Development/Other
Requires: %name = %version-%release
%description ide
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible
32/64-bit Pascal Compiler. It comes with a fully compatible TP 7.0
runtime library. Some extensions are added to the language, like
function overloading. This package contains the Integrated Development
Environment (IDE).
%files ide
%_bindir/fp
%_libdir/fpc2/ide
# docs
%package docs
Summary: docs
Group: Development/Other
Requires: %name = %version-%release
%description docs
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible
32/64-bit Pascal Compiler. It comes with a fully compatible TP 7.0
runtime library. Some extensions are added to the language, like
function overloading. This package contains the Integrated Development
Environment (docs).
%files docs
%dir %pkgdocdir
%pkgdocdir/ref
%pkgdocdir/rtl
%pkgdocdir/user
%pkgdocdir/prog
# win32
%package win32
Summary: win32
Group: Development/Other
AutoReqProv: no
Requires: i386-mingw32msvc-binutils
Requires: %name = %version-%release
%description win32
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible
32/64-bit Pascal Compiler. It comes with a fully compatible TP 7.0
runtime library. Some extensions are added to the language, like
function overloading. This package contains the Integrated Development
Environment (win32).
%files win32
%dir %_libdir/fpc2
%dir %_libdir/fpc2/units
%dir %_libdir/fpc2/units/i386-win32
# rtl
%_libdir/fpc2/units/i386-win32/rtl
# packages/base
%_libdir/fpc2/units/i386-win32/gdbint
%_libdir/fpc2/units/i386-win32/ibase
%_libdir/fpc2/units/i386-win32/md5
%_libdir/fpc2/units/i386-win32/mysql
%_libdir/fpc2/units/i386-win32/netdb
%_libdir/fpc2/units/i386-win32/odbc
%_libdir/fpc2/units/i386-win32/pasjpeg
%_libdir/fpc2/units/i386-win32/paszlib
%_libdir/fpc2/units/i386-win32/postgres
%_libdir/fpc2/units/i386-win32/regexpr
%_libdir/fpc2/units/i386-win32/sqlite
# fcl
%_libdir/fpc2/units/i386-win32/fcl
%changelog
* Sat Oct 15 2005 Alexey Tourbin <at@altlinux.ru> 2.0.0-alt1
- 1.0.10 -> 2.0.0
- fpcdir:='%_libdir/fpc2'; fpcdocdir:='%_docdir/fpc2'
* Tue Feb 11 2004 Sergey P. Kondratyev <seirge@altlinux.ru> 1.0.10-alt1
- new version + docs and examples
* Mon Oct 07 2002 Michael Shigorin <mike@altlinux.ru> 1.0.6-alt1.1
- spec cleanup
* Sat Sep 19 2002 Sergey <skrivulja@erec.ru>
- adopted for Master
[-- Attachment #1.5: fpc-2.0.0-alt-fpcdir.patch --]
[-- Type: text/plain, Size: 534 bytes --]
--- fpc/compiler/options.pas- 2005-05-05 14:53:55 +0000
+++ fpc/compiler/options.pas 2005-10-15 16:58:10 +0000
@@ -2039,6 +2039,12 @@ begin
{$ELSE USE_SYSUTILS}
fpcdir:=FixPath(getenv('FPCDIR'),false);
{$ENDIF USE_SYSUTILS}
+{$ifdef x86_64}
+ if (fpcdir='') and PathExists('/usr/lib64/fpc2/') then
+ fpcdir:='/usr/lib64/fpc2/';
+{$endif}
+ if (fpcdir='') and PathExists('/usr/lib/fpc2/') then
+ fpcdir:='/usr/lib/fpc2/';
if fpcdir='' then
begin
if PathExists('/usr/local/lib/fpc/'+version_string) then
[-- Attachment #1.6: fpc-2.0.0-alt-smartlink-ld.patch --]
[-- Type: text/plain, Size: 613 bytes --]
--- fpc/compiler/systems/t_linux.pas- 2005-03-07 17:10:00 +0000
+++ fpc/compiler/systems/t_linux.pas 2005-10-15 16:43:15 +0000
@@ -450,9 +450,8 @@ begin
StaticStr:='-static';
if (cs_link_strip in aktglobalswitches) then
StripStr:='-s';
- if (cs_link_smart in aktglobalswitches) and
- (tf_smartlink_sections in target_info.flags) then
- GCSectionsStr:='--gc-sections';
+ if (cs_link_smart in aktglobalswitches) then
+ GCSectionsStr:='--gc-sections --no-keep-memory -O1';
If (cs_profile in aktmoduleswitches) or
((Info.DynamicLinker<>'') and (not SharedLibFiles.Empty)) then
begin
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2005-10-19 16:40 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-19 12:56 [sisyphus] fpc&lazarus ashen
2005-10-19 13:47 ` [sisyphus] Re: fpc&lazarus [-] Michael Shigorin
2005-10-19 13:59 ` ashen
2005-10-19 14:05 ` Michael Shigorin
2005-10-19 14:08 ` Led
2005-10-19 16:40 ` Alexey Tourbin [this message]
2005-10-19 19:08 ` Eugene Ostapets
2005-10-19 20:12 ` Alexey Tourbin
2005-10-19 20:56 ` Eugene Ostapets
2005-10-20 2:49 ` Alexey Tourbin
2005-10-20 5:12 ` ashen
2005-10-20 10:08 ` Led
2005-10-20 19:36 ` Alexander Bokovoy
2005-10-20 6:06 ` Eugene Ostapets
2005-10-20 7:03 ` ashen
2005-10-20 7:15 ` Eugene Ostapets
2005-10-20 11:55 ` Sergey Shilov
2005-10-20 9:44 ` Epiphanov Sergei
2005-10-20 9:58 ` Eugene Ostapets
2005-10-20 14:18 ` Alexey Tourbin
2005-10-20 18:13 ` Sergey Shilov
2005-12-20 12:02 ` Sergey Shilov
2005-12-20 12:02 ` Sergey Shilov
2005-10-20 8:25 ` [sisyphus] Re: fpc&lazarus [JT] Michael Shigorin
2005-10-20 14:01 ` Alexey Tourbin
2005-10-20 10:14 ` [sisyphus] Re: fpc&lazarus [-] Led
2005-10-19 19:07 ` Eugene Ostapets
2005-10-19 15:10 ` [sisyphus] fpc&lazarus Igor Zubkov
2005-10-19 15:49 ` [sisyphus] fpc&lazarus Alexey Tourbin
2005-10-19 18:17 ` [sisyphus] fpc/ide Alexey Tourbin
2005-10-19 19:09 ` Eugene Ostapets
2005-10-20 9:56 ` Led
2005-10-20 9:58 ` Eugene Ostapets
2005-10-20 10:19 ` Led
2005-10-20 5:15 ` [sisyphus] fpc&lazarus ashen
2005-10-20 6:08 ` Eugene Ostapets
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051019164023.GQ7934@solemn.turbinal.org \
--to=at@altlinux.ru \
--cc=sisyphus@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git