#
+# TODO: Handle situations when there are no modules (most bconds turned off)
+#
# Conditional build:
-# _without_alsa - without alsa modules
-# _without_arts - without arts module
-# _without_dbglib - don't build debug versions of library
-# _without_proflib - don't debug profiling versions of library
-# _without_svgalib - without svgalib module
-# _with_alsa9 - use alsa 0.9 not 0.5
+%bcond_without alsa # without ALSA modules
+%bcond_without arts # without aRts module
+%bcond_without dga2 # without DGA2 module
+%bcond_without dbglib # don't build debug versions of library
+%bcond_without esd # without esound module
+%bcond_without fbcon # without framebuffer module
+%bcond_without jack # without JACK module
+%bcond_without proflib # don't debug profiling versions of library
+%bcond_without sse # build without sse
+%bcond_without static # don't build static versions of library
+%bcond_without svga # without svgalib module
+%bcond_without vga # without vga module
#
-%ifarch sparc sparc64
-%define _without_alsa 1
-%endif
-%{!?_without_alsa:%{!?_with_alsa9:%define _with_alsa5 1}}
Summary: A game programming library
Summary(de): Eine Bibliothek zur Programmierung von Spielen
-Summary(es): Una libreria de programacion de juegos
+Summary(es): Una biblioteca de programación de juegos
Summary(fr): Une librairie de programmation de jeux
Summary(it): Una libreria per la programmazione di videogiochi
Summary(pl): Biblioteka do programowania gier
Name: allegro
-Version: 4.1.9
+Version: 4.2.0
Release: 1
License: Giftware
Group: Libraries
Source0: http://dl.sourceforge.net/alleg/%{name}-%{version}.tar.gz
-# Source0-md5: d4423486f7aed064e10071a19fd06b1e
+# Source0-md5: a8b2c85c58b16345fe735f72763f3a6e
Patch0: %{name}-info.patch
Patch1: %{name}-examples.patch
-Patch2: %{name}-alsa9.patch
-Patch3: %{name}-opt.patch
+Patch2: %{name}-opt.patch
+Patch3: %{name}-ldflags.patch
+Patch4: %{name}-frame-pointer.patch
URL: http://alleg.sourceforge.net/
BuildRequires: XFree86-devel
-%{!?_without_alsa:BuildRequires: alsa-lib-devel}
-%{!?_without_arts:BuildRequires: arts-devel}
-BuildRequires: autoconf
+%{?with_alsa:BuildRequires: alsa-lib-devel}
+%{?with_arts:BuildRequires: artsc-devel}
+BuildRequires: autoconf >= 2.53
BuildRequires: automake
-BuildRequires: esound-devel
-%ifarch %{ix86} alpha
-%{!?_without_svgalib:BuildRequires: svgalib-devel}
+%{?with_esd:BuildRequires: esound-devel}
+%if %{with jack}
+BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: pkgconfig
%endif
+%{?with_svga:BuildRequires: svgalib-devel}
BuildRequires: texinfo
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
programación de juegos u otro tipo de programación multimedia.
%description -l fr
-Allegro est une librairie multi-plateforme destinée à être utilisée dans
-les jeux vidéo ou d'autres types de programmation multimédia.
+Allegro est une librairie multi-plateforme destinée à être utilisée
+dans les jeux vidéo ou d'autres types de programmation multimédia.
%description -l it
-Allegro è una libreria multipiattaforma dedicata all'uso nei videogiochi
-ed in altri tipi di programmazione multimediale.
+Allegro è una libreria multipiattaforma dedicata all'uso nei
+videogiochi ed in altri tipi di programmazione multimediale.
%description -l pl
Allegro jest przeno¶n± bibliotek± przeznaczon± do wykorzystania w
%package devel
Summary: A game programming library - header files
+Summary(es): Archivos de inclusión
Summary(pl): Biblioteka do programowania gier - pliki nag³ówkowe
Group: Development/Libraries
-Requires: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description devel
Allegro is a cross-platform library intended for use in computer games
paquete es necesario para compilar los programas que usen Allegro.
%description devel -l fr
-Allegro est une librairie multi-plateforme destinée à être utilisée dans
-les jeux vidéo ou d'autres types de programmation multimédia. Ce package
-est nécessaire pour compiler les programmes utilisant Allegro.
+Allegro est une librairie multi-plateforme destinée à être utilisée
+dans les jeux vidéo ou d'autres types de programmation multimédia. Ce
+package est nécessaire pour compiler les programmes utilisant Allegro.
%description devel -l it
-Allegro è una libreria multipiattaforma dedicata all'uso nei videogiochi
-ed in altri tipi di programmazione multimediale. Questo pacchetto è
-necessario per compilare programmi scritti con Allegro.
+Allegro è una libreria multipiattaforma dedicata all'uso nei
+videogiochi ed in altri tipi di programmazione multimediale. Questo
+pacchetto è necessario per compilare programmi scritti con Allegro.
%description devel -l pl
Allegro jest przeno¶n± bibliotek± przeznaczon± do wykorzystania w
Summary: A game programming library - static libraries
Summary(pl): Biblioteka do programowania gier - biblioteki statyczne
Group: Development/Libraries
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{version}-%{release}
%description static
Allegro is a cross-platform library intended for use in computer games
Allegro jest przeno¶n± bibliotek± przeznaczon± do wykorzystania w
grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-Ten pakiet zawiera biblioteki statyczne do linkowania z aplikacjami
+Ten pakiet zawiera biblioteki statyczne do konsolidacji z aplikacjami
wykorzystuj±cymi allegro.
%package debug
Summary: liballd - debug version of shared allegro library
Summary(pl): liballd - wersja debug dzielonej biblioteki allegro
Group: Development/Libraries
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{version}-%{release}
%description debug
liballd - debug version of shared allegro library (contains debugging
Summary: liballd - debug version of static allegro library
Summary(pl): liballd - wersja debug statycznej biblioteki allegro
Group: Development/Libraries
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{version}-%{release}
%description debug-static
liballd - debug version of static allegro library (contains debugging
Summary: liballp - profiling version of shared allegro library
Summary(pl): liballp - wersja dzielonej biblioteki allegro s³u¿±ca do profilowania
Group: Development/Libraries
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{version}-%{release}
%description profile
liballp - profiling version of shared allegro library.
Summary: liballp - profiling version of static allegro library
Summary(pl): liballp - wersja statycznej biblioteki allegro s³u¿±ca do profilowania
Group: Development/Libraries
-Requires: %{name}-devel = %{version}
+Requires: %{name}-devel = %{version}-%{release}
%description profile-static
liballp - profiling version of static allegro library.
-%description debug-static -l pl
+%description profile-static -l pl
liballp - wersja statycznej biblioteki allegro s³u¿±ca do
profilowania.
Summary: A game programming library - svgalib module
Summary(pl): Biblioteka do programowania gier - modu³ dla svgalib
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description svgalib
Allegro is a cross-platform library intended for use in computer games
Summary: A game programming library - DGA2 module
Summary(pl): Biblioteka do programowania gier - modu³ dla DGA2
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description dga2
Allegro is a cross-platform library intended for use in computer games
Summary: A game programming library - esound module
Summary(pl): Biblioteka do programowania gier - modu³ dla esound
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description esd
Allegro is a cross-platform library intended for use in computer games
Summary: A game programming library - aRts module
Summary(pl): Biblioteka do programowania gier - modu³ dla aRts
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description arts
Allegro is a cross-platform library intended for use in computer games
Summary: A game programming library - framebuffer module
Summary(pl): Biblioteka do programowania gier - modu³ dla framebuffera
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description fbcon
Allegro is a cross-platform library intended for use in computer games
Summary: A game programming library - vga module
Summary(pl): Biblioteka do programowania gier - modu³ dla vga
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description vga
Allegro is a cross-platform library intended for use in computer games
Ten pakiet zawiera modu³ do wykorzystania z vga.
-%package alsa9
-Summary: A game programming library - ALSA 0.9 modules
-Summary(pl): Biblioteka do programowania gier - modu³y dla ALSA 0.9
+%package alsa
+Summary: A game programming library - ALSA modules
+Summary(pl): Biblioteka do programowania gier - modu³y dla ALSA
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
+Obsoletes: allegro-alsa9
-%description alsa9
+%description alsa
Allegro is a cross-platform library intended for use in computer games
and other types of multimedia programming.
-This package contains modules for use with ALSA 0.9 sound library.
+This package contains modules for use with ALSA sound library.
-%description alsa9 -l pl
+%description alsa -l pl
Allegro jest przeno¶n± bibliotek± przeznaczon± do wykorzystania w
grach komputerowych i innych rodzajach oprogramowania multimedialnego.
Ten pakiet zawiera modu³y do wykorzystania z bibliotek± d¼wiêkow±
-ALSA 0.9.
+ALSA.
-%package alsa
-Summary: A game programming library - ALSA modules
-Summary(pl): Biblioteka do programowania gier - modu³y dla ALSA
+%package jack
+Summary: A game programming library - JACK module
+Summary(pl): Biblioteka do programowania gier - modu³ dla JACK-a
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
-%description alsa
+%description jack
Allegro is a cross-platform library intended for use in computer games
and other types of multimedia programming.
-This package contains modules for use with ALSA sound library.
+This package contains module for use with JACK sound library.
-%description alsa -l pl
+%description jack -l pl
Allegro jest przeno¶n± bibliotek± przeznaczon± do wykorzystania w
grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-Ten pakiet zawiera modu³y do wykorzystania z bibliotek± d¼wiêkow±
-ALSA.
+Ten pakiet zawiera modu³ do wykorzystania z bibliotek± d¼wiêkow± JACK.
%package tools
Summary: A game programming library - tools
Summary(it): Programmi di utilità aggiuntivi per la libreria Allegro
Summary(pl): Biblioteka do programowania gier - narzêdzia
Group: Libraries
-PreReq: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description tools
Allegro is a cross-platform library intended for use in computer games
%description tools -l de
Allegro ist eine plattformübergreifende Bibliothek zur Verwendung in
Computerspielen und anderen Formen von Multinediaprogrammierung.
-Dieses Paket enthält Programme, die für die Entwicklung von
-Allegro Programmen hilfreich sind.
+Dieses Paket enthält Programme, die für die Entwicklung von Allegro
+Programmen hilfreich sind.
%description tools -l es
Allegro es una librería multi-plataforma creada para ser usada en la
desarrollar programas que usen Allegro.
%description tools -l fr
-Allegro est une librairie multi-plateforme destinée à être utilisée dans
-les jeux vidéo ou d'autres types de programmation multimédia. Ce package
-contient des outils supplémentaires qui sont utiles pour le développement
-de programmes avec Allegro.
+Allegro est une librairie multi-plateforme destinée à être utilisée
+dans les jeux vidéo ou d'autres types de programmation multimédia. Ce
+package contient des outils supplémentaires qui sont utiles pour le
+développement de programmes avec Allegro.
%description tools -l it
-Allegro è una libreria multipiattaforma dedicata all'uso nei videogiochi
-ed in altri tipi di programmazione multimediale. Questo pacchetto
-contiene programmi di utilità aggiuntivi utili allo sviluppo di programmi
-con Allegro.
+Allegro è una libreria multipiattaforma dedicata all'uso nei
+videogiochi ed in altri tipi di programmazione multimediale. Questo
+pacchetto contiene programmi di utilità aggiuntivi utili allo sviluppo
+di programmi con Allegro.
%description tools -l pl
Allegro jest przeno¶n± bibliotek± przeznaczon± do wykorzystania w
Summary: A game programming library - test programs
Summary(pl): Biblioteka do programowania gier - programy testuj±ce
Group: Development/Libraries
-Requires: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description tests
This package contains programs for testing allegro library.
Summary: A game programming library - examples
Summary(pl): Biblioteka do programowania gier - programy przyk³adowe
Group: Development/Libraries
-Requires: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description examples
-This package contains example programs which are showing
-allegro features.
+This package contains example programs which demonstrate allegro
+features.
%description examples -l pl
-Pakiet zawiera programy przyk³adowe demonstruj±ce mo?liwo¶ci biblioteki allegro.
+Pakiet zawiera programy przyk³adowe demonstruj±ce mo¿liwo¶ci
+biblioteki allegro.
%prep
-%setup -q
+%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%build
%{__aclocal}
-%{__autoheader} configure.in include/allegro/platform/alunixac.hin
+%{__autoheader} configure.in > include/allegro/platform/alunixac.hin
%{__autoconf}
-TARGET_ARCH="%{rpmcflags}"; export TARGET_ARCH
+TARGET_ARCH="%{rpmcflags}" export TARGET_ARCH
# dbglib & proflib are compiled besides normlib, so it's ok to have them here
%configure \
- --enable-static \
- %{?_without_svgalib:--disable-svgalib} \
- %{!?_without_dbglib:--enable-dbglib} \
-%ifnarch %{ix86} alpha
- --disable-vga \
- --disable-linux \
+ %{?with_static:--enable-static} \
+ %{?with_dbglib:--enable-dbglib} \
+ %{?with_proflib:--enable-proflib} \
+%if %{without alsa}
+ --disable-alsadigi \
+ --disable-alsamidi \
+%endif
+ %{!?with_arts:--disable-artsdigi} \
+ %{!?with_dga2:--disable-xwin-dga2} \
+ %{!?with_esd:--disable-esddigi} \
+ %{!?with_fbcon:--disable-fbcon} \
+ %{!?with_jack:--disable-jackdigi} \
+ %{!?with_svga:--disable-svgalib} \
+ %{!?with_vga:--disable-vga} \
+%if %{without sse}
+ --disable-sse \
+ --disable-asm \
%endif
- %{!?_without_proflib:--enable-proflib} \
%ifnarch %{ix86}
- --disable-asm
+ --disable-asm \
+ --disable-mmx \
+ --disable-sse
%endif
%{__make} \
%{__make} install install-man install-info install-lib \
DESTDIR=$RPM_BUILD_ROOT
-install modules.lst $RPM_BUILD_ROOT%{_libdir}/allegro/4.1
+install modules.lst $RPM_BUILD_ROOT%{_libdir}/allegro/4.2
mv $RPM_BUILD_ROOT%{_bindir}/demo{,-allegro}
mv $RPM_BUILD_ROOT%{_bindir}/play{,-allegro}
mv $RPM_BUILD_ROOT%{_bindir}/setup{,-allegro}
mv $RPM_BUILD_ROOT%{_bindir}/test{,-allegro}
+# help rpm to find reqs for ELF objects
+chmod 755 $RPM_BUILD_ROOT%{_libdir}/{*.so,allegro/*/*.so}
+
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+%post devel
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
+
+%postun devel
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
+
%files
%defattr(644,root,root,755)
-%doc AUTHORS CHANGES THANKS
+%doc AUTHORS CHANGES THANKS readme.txt
%attr(755,root,root) %{_libdir}/liballeg-%{version}.so
%dir %{_libdir}/allegro
-%dir %{_libdir}/allegro/4.1
-%{_libdir}/allegro/4.1/modules.lst
+%dir %{_libdir}/allegro/4.2
+%{_libdir}/allegro/4.2/modules.lst
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/allegro-config
%{_libdir}/liballeg_unsharable.a
%{_includedir}/*
+%{_aclocaldir}/allegro.m4
%{_mandir}/man3/*
%{_infodir}/*.info*
+%if %{with static}
%files static
%defattr(644,root,root,755)
%{_libdir}/liballeg.a
+%endif
-%if 0%{!?_without_dbglib:1}
+%if %{with dbglib}
%files debug
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/liballd-%{version}.so
%{_libdir}/liballd_unsharable.a
+%if %{with static}
%files debug-static
%defattr(644,root,root,755)
%{_libdir}/liballd.a
%endif
+%endif
-%if 0%{!?_without_proflib:1}
+%if %{with proflib}
%files profile
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/liballp-%{version}.so
%{_libdir}/liballp_unsharable.a
+%if %{with static}
%files profile-static
%defattr(644,root,root,755)
%{_libdir}/liballp.a
%endif
+%endif
-%if %{!?_without_svgalib:1}0
-%ifarch %{ix86} alpha
+%if %{with svga}
%files svgalib
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-svgalib.so
-%endif
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-svgalib.so
%endif
+%if %{with dga2}
%files dga2
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-dga2.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-dga2.so
+%endif
+%if %{with esd}
%files esd
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-esddigi.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-esddigi.so
+%endif
-%if 0%{!?_without_arts:1}
+%if %{with arts}
%files arts
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-artsdigi.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-artsdigi.so
%endif
+%if %{with fbcon}
%files fbcon
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-fbcon.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-fbcon.so
+%endif
+%ifarch %{ix86}
+%if %{with vga}
%files vga
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-vga.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-vga.so
+%endif
+%endif
-%if 0%{?_with_alsa5:1}
+%if %{with alsa}
%files alsa
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-alsadigi.so
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-alsamidi.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-alsadigi.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-alsamidi.so
%endif
-%if 0%{?_with_alsa9:1}
-%files alsa9
+%if %{with jack}
+%files jack
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-alsa9digi.so
-%attr(755,root,root) %{_libdir}/allegro/4.1/alleg-alsa9midi.so
+%attr(755,root,root) %{_libdir}/allegro/4.2/alleg-jackdigi.so
%endif
%files tools
%attr(755,root,root) %{_bindir}/pack
%attr(755,root,root) %{_bindir}/rgbmap
%attr(755,root,root) %{_bindir}/textconv
+%attr(755,root,root) %{_bindir}/xkeymap
+%attr(755,root,root) %{_bindir}/xf2pcx
%attr(755,root,root) %{_bindir}/dat
%attr(755,root,root) %{_bindir}/dat2c
%attr(755,root,root) %{_bindir}/dat2s
%attr(755,root,root) %{_bindir}/grabber
%attr(755,root,root) %{_bindir}/pat2dat
%attr(755,root,root) %{_bindir}/setup-allegro
-%attr(755,root,root) %{_bindir}/keyconf
%files tests
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/afinfo
%attr(755,root,root) %{_bindir}/akaitest
+%attr(755,root,root) %{_bindir}/cpptest
%attr(755,root,root) %{_bindir}/demo-allegro
%attr(755,root,root) %{_bindir}/digitest
%attr(755,root,root) %{_bindir}/filetest
%attr(755,root,root) %{_bindir}/exblend
%attr(755,root,root) %{_bindir}/excamera
%attr(755,root,root) %{_bindir}/excolmap
+%attr(755,root,root) %{_bindir}/exconfig
%attr(755,root,root) %{_bindir}/excustom
%attr(755,root,root) %{_bindir}/exdata
%attr(755,root,root) %{_bindir}/exdbuf
-%attr(755,root,root) %{_bindir}/exdodgy
%attr(755,root,root) %{_bindir}/exexedat
%attr(755,root,root) %{_bindir}/exfixed
%attr(755,root,root) %{_bindir}/exflame
%attr(755,root,root) %{_bindir}/exflip
+%attr(755,root,root) %{_bindir}/exfont
%attr(755,root,root) %{_bindir}/exgui
%attr(755,root,root) %{_bindir}/exhello
%attr(755,root,root) %{_bindir}/exjoy
%attr(755,root,root) %{_bindir}/exmem
%attr(755,root,root) %{_bindir}/exmidi
%attr(755,root,root) %{_bindir}/exmouse
+%attr(755,root,root) %{_bindir}/expackf
%attr(755,root,root) %{_bindir}/expal
%attr(755,root,root) %{_bindir}/expat
%attr(755,root,root) %{_bindir}/exquat
%attr(755,root,root) %{_bindir}/exrgbhsv
%attr(755,root,root) %{_bindir}/exsample
+%attr(755,root,root) %{_bindir}/exsyscur
%attr(755,root,root) %{_bindir}/exscale
%attr(755,root,root) %{_bindir}/exscn3d
%attr(755,root,root) %{_bindir}/exscroll