#
-# TODO: Handle situations when there are no modules (most bconds turned off)
-#
# Conditional build:
%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
+%bcond_with svga # without svgalib module
+%bcond_without vga # without vga module (x86-only)
#
+%ifnarch %{ix86}
+# x86_64 too?
+%undefine with_vga
+%endif
Summary: A game programming library
Summary(de.UTF-8): Eine Bibliothek zur Programmierung von Spielen
Summary(es.UTF-8): Una biblioteca de programación de juegos
Summary(it.UTF-8): Una libreria per la programmazione di videogiochi
Summary(pl.UTF-8): Biblioteka do programowania gier
Name: allegro
-Version: 4.3.0
-Release: 1
+Version: 4.4.2
+Release: 2
License: Giftware
Group: Libraries
-Source0: http://dl.sourceforge.net/alleg/%{name}-%{version}.tar.gz
-# Source0-md5: 0746b948ecd63cab806026cf3b452e20
+Source0: http://downloads.sourceforge.net/alleg/%{name}-%{version}.tar.gz
+# Source0-md5: 4db71b0460fc99926ae91d223199c2e6
Patch0: %{name}-info.patch
-Patch1: %{name}-examples.patch
-Patch2: %{name}-opt.patch
-Patch3: %{name}-ldflags.patch
-Patch4: %{name}-frame-pointer.patch
-Patch5: %{name}-config.patch
+Patch1: %{name}-config.patch
URL: http://alleg.sourceforge.net/
-%{?with_alsa:BuildRequires: alsa-lib-devel}
-%{?with_arts:BuildRequires: artsc-devel}
-BuildRequires: autoconf >= 2.53
-BuildRequires: automake
-%{?with_esd:BuildRequires: esound-devel}
-%if %{with jack}
+BuildRequires: OpenGL-GLU-devel
+BuildRequires: OpenGL-devel
+%{?with_alsa:BuildRequires: alsa-lib-devel >= 0.9}
+BuildRequires: cmake >= 2.6
BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: libogg-devel
+BuildRequires: libpng-devel
+BuildRequires: libstdc++-devel
+BuildRequires: libvorbis-devel
BuildRequires: pkgconfig
-%endif
+BuildRequires: rpmbuild(macros) >= 1.600
+BuildRequires: sed >= 4.0
%{?with_svga:BuildRequires: svgalib-devel}
BuildRequires: texinfo
BuildRequires: xorg-lib-libX11-devel
Summary(pl.UTF-8): Biblioteka do programowania gier - pliki nagłówkowe
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
+Requires: xorg-lib-libX11-devel
+Requires: xorg-lib-libXcursor-devel
+Requires: xorg-lib-libXext-devel
+Requires: xorg-lib-libXpm-devel
+Requires: xorg-lib-libXxf86vm-devel
+Obsoletes: allegro-static
%description devel
Allegro is a cross-platform library intended for use in computer games
Ten pakiet zawiera pliki nagłówkowe niezbędne do kompilowania
aplikacji wykorzystujących bibliotekę allegro.
-%package static
-Summary: A game programming library - static libraries
-Summary(pl.UTF-8): Biblioteka do programowania gier - biblioteki statyczne
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-Requires: xorg-lib-libX11-devel
-Requires: xorg-lib-libXcursor-devel
-Requires: xorg-lib-libXext-devel
-Requires: xorg-lib-libXpm-devel
-Requires: xorg-lib-libXxf86vm-devel
-
-%description static
-Allegro is a cross-platform library intended for use in computer games
-and other types of multimedia programming.
-
-This package contains static libraries for linking with allegro
-applications.
-
-%description static -l pl.UTF-8
-Allegro jest przenośną biblioteką przeznaczoną do wykorzystania w
-grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-
-Ten pakiet zawiera biblioteki statyczne do konsolidacji z aplikacjami
-wykorzystującymi allegro.
-
-%package debug
-Summary: liballd - debug version of shared allegro library
-Summary(pl.UTF-8): liballd - wersja debug dzielonej biblioteki allegro
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%description debug
-liballd - debug version of shared allegro library (contains debugging
-symbols and other information).
-
-%description debug -l pl.UTF-8
-liballd - wersja debug dzielonej biblioteki allegro (zawierająca
-symbole i inne informacje potrzebne przy odpluskwianiu).
-
-%package debug-static
-Summary: liballd - debug version of static allegro library
-Summary(pl.UTF-8): liballd - wersja debug statycznej biblioteki allegro
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%description debug-static
-liballd - debug version of static allegro library (contains debugging
-symbols and other information).
-
-%description debug-static -l pl.UTF-8
-liballd - wersja debug statycznej biblioteki allegro (zawierająca
-symbole i inne informacje potrzebne przy odpluskwianiu).
-
-%package profile
-Summary: liballp - profiling version of shared allegro library
-Summary(pl.UTF-8): liballp - wersja dzielonej biblioteki allegro służąca do profilowania
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%description profile
-liballp - profiling version of shared allegro library.
-
-%description profile -l pl.UTF-8
-liballp - wersja dzielonej biblioteki allegro służąca do profilowania.
-
-%package profile-static
-Summary: liballp - profiling version of static allegro library
-Summary(pl.UTF-8): liballp - wersja statycznej biblioteki allegro służąca do profilowania
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%description profile-static
-liballp - profiling version of static allegro library.
-
-%description profile-static -l pl.UTF-8
-liballp - wersja statycznej biblioteki allegro służąca do
-profilowania.
-
-%package svgalib
-Summary: A game programming library - svgalib module
-Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla svgalib
-Group: Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description svgalib
-Allegro is a cross-platform library intended for use in computer games
-and other types of multimedia programming.
-
-This package contains module for use with allegro and svgalib.
-
-%description svgalib -l pl.UTF-8
-Allegro jest przenośną biblioteką przeznaczoną do wykorzystania w
-grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-
-Ten pakiet zawiera moduł do wykorzystania allegro z svgalibem.
-
%package dga2
Summary: A game programming library - DGA2 module
Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla DGA2
Ten pakiet zawiera moduł do wykorzystania z DGA.
-%package esd
-Summary: A game programming library - esound module
-Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla esound
-Group: Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description esd
-Allegro is a cross-platform library intended for use in computer games
-and other types of multimedia programming.
-
-This package contains a esound module for use with ESound daemon.
-
-%description esd -l pl.UTF-8
-Allegro jest przenośną biblioteką przeznaczoną do wykorzystania w
-grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-
-Ten pakiet zawiera moduł do wykorzystania z demonem ESound.
-
-%package arts
-Summary: A game programming library - aRts module
-Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla aRts
+%package fbcon
+Summary: A game programming library - FrameBuffer module
+Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla FrameBuffera
Group: Libraries
Requires: %{name} = %{version}-%{release}
-%description arts
+%description fbcon
Allegro is a cross-platform library intended for use in computer games
and other types of multimedia programming.
-This package contains a esound module for use with aRts.
+This package contains module for use with Linux FrameBuffer.
-%description arts -l pl.UTF-8
+%description fbcon -l pl.UTF-8
Allegro jest przenośną biblioteką przeznaczoną do wykorzystania w
grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-Ten pakiet zawiera moduł do wykorzystania z aRts.
+Ten pakiet zawiera moduł do wykorzystania z linuksowym FrameBufferem.
-%package fbcon
-Summary: A game programming library - framebuffer module
-Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla framebuffera
+%package svgalib
+Summary: A game programming library - svgalib module
+Summary(pl.UTF-8): Biblioteka do programowania gier - moduł dla svgalib
Group: Libraries
Requires: %{name} = %{version}-%{release}
-%description fbcon
+%description svgalib
Allegro is a cross-platform library intended for use in computer games
and other types of multimedia programming.
-This package contains a esound module for use with framebuffer.
+This package contains module for use with allegro and svgalib.
-%description fbcon -l pl.UTF-8
+%description svgalib -l pl.UTF-8
Allegro jest przenośną biblioteką przeznaczoną do wykorzystania w
grach komputerowych i innych rodzajach oprogramowania multimedialnego.
-Ten pakiet zawiera moduł do wykorzystania z framebufferem.
+Ten pakiet zawiera moduł do wykorzystania allegro z svgalibem.
%package vga
Summary: A game programming library - vga module
Ten pakiet zawiera moduł do wykorzystania z biblioteką dźwiękową JACK.
+%package addons
+Summary: Allegro addon libraries
+Summary(pl.UTF-8): Dodatkowe biblioteki Allegro
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Obsoletes: allegro-gl
+
+%description addons
+Allegro addon libraries: AllegroGL, JPGAlleg, loadpng, logg.
+
+%description addons -l pl.UTF-8
+Dodatkowe biblioteki Allegro: AllegroGL, JPGAlleg, loadpng, logg.
+
+%package addons-devel
+Summary: Header files for Allegro addon libraries
+Summary(pl.UTF-8): Pliki nagłówkowe dodatkowych bibliotek Allegro
+Group: Development/Libraries
+Requires: %{name}-addons = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+Requires: OpenGL-GLU-devel
+Requires: OpenGL-devel
+Requires: libpng-devel
+Requires: libvorbis-devel
+Obsoletes: allegro-gl-devel
+
+%description addons-devel
+Header files for Allegro addon libraries: AllegroGL, JPGAlleg,
+loadpng, logg.
+
+%description addons-devel -l pl.UTF-8
+Pliki nagłówkowe dodatkowych bibliotek Allegro: AllegroGL, JPGAlleg,
+loadpng, logg.
+
%package tools
Summary: A game programming library - tools
Summary(de.UTF-8): Zusätzliche Hilfprogramme für die Allegro Bibliothek
%setup -q
%patch0 -p1
%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%build
-%{__aclocal}
-%{__autoheader} configure.in > include/allegro/platform/alunixac.hin
-%{__autoconf}
-#TARGET_ARCH="%{rpmcflags}" export TARGET_ARCH
-# dbglib & proflib are compiled besides normlib, so it's ok to have them here
-%configure \
- %{?with_static:--enable-static} \
- %{?with_dbglib:--enable-dbglib} \
- %{?with_proflib:--enable-proflib} \
-%if !%{with 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 !%{with sse}
- --disable-sse \
- --disable-asm \
-%endif
-%ifnarch %{ix86}
- --disable-asm \
- --disable-mmx \
- --disable-sse
-%endif
+sed -i -e 's/ADDON_LINKAGE STATIC/ADDON_LINKAGE SHARED/' CMakeLists.txt
-%{__make} \
- MAKEINFO=makeinfo
+%build
+install -d build
+cd build
+%cmake .. \
+ -DINFODIR=%{_infodir} \
+ -DPLATFORM_LIBS=-ldl \
+ %{!?with_alsa:-DWANT_ALSA=OFF} \
+ -DWANT_LINUX_CONSOLE=ON \
+ %{!?with_vga:-DWANT_LINUX_VGA=OFF} \
+ %{!?with_svga:-DWANT_LINUX_SVGALIB=OFF}
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_mandir}/man3
-%{__make} install install-man install-info install-lib \
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
install modules.lst $RPM_BUILD_ROOT%{_libdir}/allegro/%{version}
-mv $RPM_BUILD_ROOT%{_bindir}/demo{,-allegro}
+# install examples and tests
+find build/examples -maxdepth 1 -perm 755 -name "ex*" -exec install {} $RPM_BUILD_ROOT%{_bindir} \;
+find build/tests -maxdepth 1 -perm 755 ! -name CMakeFiles -exec install {} $RPM_BUILD_ROOT%{_bindir} \;
+
+# force install man pages
+cp build/docs/man/* $RPM_BUILD_ROOT%{_mandir}/man3
+
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}
+%{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc/allegro-%{version}
%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
+%post devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
-%postun devel
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
+%post addons -p /sbin/ldconfig
+%postun addons -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
-%doc AUTHORS CHANGES THANKS readme.txt
-%attr(755,root,root) %{_libdir}/liballeg-%{version}.so
+%doc AUTHORS CHANGES THANKS readme.txt todo.txt
+%attr(755,root,root) %{_libdir}/liballeg.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/liballeg.so.4.4
%dir %{_libdir}/allegro
%dir %{_libdir}/allegro/%{version}
%{_libdir}/allegro/%{version}/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 %{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 %{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 %{with svga}
-%files svgalib
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-svgalib.so
-%endif
+%attr(755,root,root) %{_libdir}/liballeg.so
+%{_includedir}/allegro
+%{_includedir}/allegro.h
+%{_includedir}/linalleg.h
+%{_includedir}/xalleg.h
+# XXX: aren't some names too generic?
+%{_mandir}/man3/*.3*
+%{_infodir}/allegro.info*
+%{_pkgconfigdir}/allegro.pc
%if %{with dga2}
%files dga2
%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-dga2.so
%endif
-%if %{with esd}
-%files esd
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-esddigi.so
-%endif
-
-%if %{with arts}
-%files arts
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-artsdigi.so
-%endif
-
-%if %{with fbcon}
%files fbcon
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-fbcon.so
+
+%if %{with svga}
+%files svgalib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-svgalib.so
%endif
-%ifarch %{ix86}
%if %{with vga}
%files vga
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-vga.so
%endif
-%endif
%if %{with alsa}
%files alsa
%if %{with jack}
%files jack
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-jackdigi.so
+%attr(755,root,root) %{_libdir}/allegro/%{version}/alleg-jack.so
%endif
+%files addons
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/liballeggl.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/liballeggl.so.4.4
+%attr(755,root,root) %{_libdir}/libjpgalleg.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libjpgalleg.so.4.4
+%attr(755,root,root) %{_libdir}/libloadpng.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libloadpng.so.4.4
+%attr(755,root,root) %{_libdir}/liblogg.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/liblogg.so.4.4
+
+%files addons-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/liballeggl.so
+%attr(755,root,root) %{_libdir}/libjpgalleg.so
+%attr(755,root,root) %{_libdir}/libloadpng.so
+%attr(755,root,root) %{_libdir}/liblogg.so
+%{_includedir}/allegrogl
+%{_includedir}/alleggl.h
+%{_includedir}/jpgalleg.h
+%{_includedir}/loadpng.h
+%{_includedir}/logg.h
+%{_pkgconfigdir}/allegrogl.pc
+%{_pkgconfigdir}/jpgalleg.pc
+%{_pkgconfigdir}/loadpng.pc
+%{_pkgconfigdir}/logg.pc
+
%files tools
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/colormap
%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
%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}/gfxinfo
%attr(755,root,root) %{_bindir}/expat
%attr(755,root,root) %{_bindir}/exquat
%attr(755,root,root) %{_bindir}/exrgbhsv
+%attr(755,root,root) %{_bindir}/exrotscl
+%attr(755,root,root) %{_bindir}/extrans2
%attr(755,root,root) %{_bindir}/exsample
%attr(755,root,root) %{_bindir}/exsyscur
%attr(755,root,root) %{_bindir}/exscale