Blob Blame History Raw
#
# spec file for package allegro
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define pack_descr Allegro is a cross-platform library mainly aimed at \
video game and multimedia programming. It handles common, low-level \
tasks such as creating windows, accepting user input, loading data, \
drawing images, playing sounds, etc. and generally abstracting away \
the underlying platform. However, Allegro is not a game engine: \
developers are free to design and structure the program as desired.
%define allegro_so_nr 5_2
%define dot_allegro_so_nr %(echo %{allegro_so_nr} | sed s/_/./)
Name:           allegro
Version:        5.2.9.1
Release:        0
Summary:        A game programming library
License:        BSD-3-Clause AND Zlib
Group:          Development/Libraries/C and C++
URL:            https://liballeg.org
Source0:        https://github.com/liballeg/allegro5/releases/download/%{version}/allegro-%{version}.tar.gz
BuildRequires:  cmake
BuildRequires:  fdupes
BuildRequires:  freeimage-devel
BuildRequires:  gcc-c++
BuildRequires:  libjpeg-devel
BuildRequires:  libphysfs-devel
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(dumb) >= 2.0
BuildRequires:  pkgconfig(flac)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(gdk-x11-3.0)
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(glu)
BuildRequires:  pkgconfig(gobject-2.0)
BuildRequires:  pkgconfig(gthread-2.0)
BuildRequires:  pkgconfig(gtk+-x11-3.0)
BuildRequires:  pkgconfig(libpng)
BuildRequires:  pkgconfig(libpulse)
BuildRequires:  pkgconfig(libpulse-simple)
BuildRequires:  pkgconfig(libwebp)
BuildRequires:  pkgconfig(openal)
BuildRequires:  pkgconfig(opus)
BuildRequires:  pkgconfig(opusfile)
BuildRequires:  pkgconfig(pango)
BuildRequires:  pkgconfig(theora)
BuildRequires:  pkgconfig(vorbisfile)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcursor)
BuildRequires:  pkgconfig(xi)
BuildRequires:  pkgconfig(xinerama)
BuildRequires:  pkgconfig(xrandr)

%description
%{pack_descr}

%package -n liballegro%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro%{allegro_so_nr}
%{pack_descr}

%package -n liballegro%{allegro_so_nr}-devel
Summary:        Development files for liballegro
Group:          Development/Libraries/C and C++
Requires:       liballegro%{allegro_so_nr} = %{version}
Requires:       pkgconfig(gl)
Requires:       pkgconfig(x11)

%description -n liballegro%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro.

%package -n liballegro_acodec%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_acodec%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_acodec%{allegro_so_nr}-devel
Summary:        Development files for liballegro_acodec
Group:          Development/Libraries/C and C++
Requires:       liballegro_acodec%{allegro_so_nr} = %{version}

%description -n liballegro_acodec%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_acodec.

%package -n liballegro_audio%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_audio%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_audio%{allegro_so_nr}-devel
Summary:        Development files for liballegro_audio
Group:          Development/Libraries/C and C++
Requires:       liballegro_audio%{allegro_so_nr} = %{version}

%description -n liballegro_audio%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_audio.

%package -n liballegro_color%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_color%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_color%{allegro_so_nr}-devel
Summary:        Development files for liballegro_color
Group:          Development/Libraries/C and C++
Requires:       liballegro_color%{allegro_so_nr} = %{version}

%description -n liballegro_color%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_color.

%package -n liballegro_dialog%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_dialog%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_dialog%{allegro_so_nr}-devel
Summary:        Development files for liballegro_dialog
Group:          Development/Libraries/C and C++
Requires:       liballegro_dialog%{allegro_so_nr} = %{version}

%description -n liballegro_dialog%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_dialog.

%package -n liballegro_font%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_font%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_font%{allegro_so_nr}-devel
Summary:        Development files for liballegro_font
Group:          Development/Libraries/C and C++
Requires:       liballegro_font%{allegro_so_nr} = %{version}

%description -n liballegro_font%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_font.

%package -n liballegro_image%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_image%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_image%{allegro_so_nr}-devel
Summary:        Development files for liballegro_image
Group:          Development/Libraries/C and C++
Requires:       liballegro_image%{allegro_so_nr} = %{version}

%description -n liballegro_image%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_image.

%package -n liballegro_main%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_main%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_main%{allegro_so_nr}-devel
Summary:        Development files for liballegro_main
Group:          Development/Libraries/C and C++
Requires:       liballegro_main%{allegro_so_nr} = %{version}

%description -n liballegro_main%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_main.

%package -n liballegro_memfile%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_memfile%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_memfile%{allegro_so_nr}-devel
Summary:        Development files for liballegro_memfile
Group:          Development/Libraries/C and C++
Requires:       liballegro_memfile%{allegro_so_nr} = %{version}

%description -n liballegro_memfile%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_memfile.

%package -n liballegro_physfs%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_physfs%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_physfs%{allegro_so_nr}-devel
Summary:        Development files for liballegro_physfs
Group:          Development/Libraries/C and C++
Requires:       liballegro_physfs%{allegro_so_nr} = %{version}

%description -n liballegro_physfs%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_physfs.

%package -n liballegro_primitives%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_primitives%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_primitives%{allegro_so_nr}-devel
Summary:        Development files for liballegro_primitives
Group:          Development/Libraries/C and C++
Requires:       liballegro_primitives%{allegro_so_nr} = %{version}

%description -n liballegro_primitives%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_primitives.

%package -n liballegro_ttf%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_ttf%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_ttf%{allegro_so_nr}-devel
Summary:        Development files for liballegro_ttf
Group:          Development/Libraries/C and C++
Requires:       liballegro_ttf%{allegro_so_nr} = %{version}

%description -n liballegro_ttf%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_ttf.

%package -n liballegro_video%{allegro_so_nr}
Summary:        A game programming library
Group:          System/Libraries

%description -n liballegro_video%{allegro_so_nr}
%{pack_descr}

%package -n liballegro_video%{allegro_so_nr}-devel
Summary:        Development files for liballegro_video
Group:          Development/Libraries/C and C++
Requires:       liballegro_video%{allegro_so_nr} = %{version}

%description -n liballegro_video%{allegro_so_nr}-devel
Development files needed to build applications which use liballegro_video.

%package -n liballegro-doc
Summary:        Allegro Documentation
Group:          Documentation/HTML
BuildArch:      noarch

%description -n liballegro-doc
Allegro HTML documentation and man pages.

%prep
%setup -q

%build
# Tests require a graphics card
%cmake \
      -DCMAKE_C_FLAGS="%{optflags} -fPIC -D_FILE_OFFSET_BITS=64" \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DWANT_EXAMPLES=NO \
      -DWANT_TESTS=NO \
      -DWANT_DEMO=NO ..
%make_build

%install
%cmake_install
install -D -m 644 allegro5.cfg %{buildroot}%{_sysconfdir}/allegro5rc
install -d -D %{buildroot}%{_mandir}/man3
cp docs/man/*.3 %{buildroot}%{_mandir}/man3
%fdupes -s %{buildroot}%{_mandir}/man3
install -d -D %{buildroot}%{_datadir}/doc/%{name}
cp -r docs/html/refman/* %{buildroot}%{_datadir}/doc/%{name}

%post -n liballegro_video%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_ttf%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_primitives%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_physfs%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_memfile%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_main%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_image%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_font%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_dialog%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_color%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_audio%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro_acodec%{allegro_so_nr} -p /sbin/ldconfig
%post -n liballegro%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_acodec%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_audio%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_color%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_dialog%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_font%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_image%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_main%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_memfile%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_physfs%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_primitives%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_ttf%{allegro_so_nr} -p /sbin/ldconfig
%postun -n liballegro_video%{allegro_so_nr} -p /sbin/ldconfig

%files -n liballegro%{allegro_so_nr}
%license LICENSE.txt
%doc CHANGES-5.?.txt CONTRIBUTORS.txt README.txt
%{_libdir}/liballegro.so.%{dot_allegro_so_nr}*
%config(noreplace) %{_sysconfdir}/allegro5rc

%files -n liballegro%{allegro_so_nr}-devel
%{_libdir}/liballegro.so
%{_includedir}/allegro5
%exclude %{_includedir}/allegro5/allegro_acodec.h
%exclude %{_includedir}/allegro5/allegro_audio.h
%exclude %{_includedir}/allegro5/allegro_color.h
%exclude %{_includedir}/allegro5/allegro_native_dialog.h
%exclude %{_includedir}/allegro5/allegro_font.h
%exclude %{_includedir}/allegro5/allegro_image.h
%exclude %{_includedir}/allegro5/allegro_memfile.h
%exclude %{_includedir}/allegro5/allegro_physfs.h
%exclude %{_includedir}/allegro5/allegro_primitives.h
%exclude %{_includedir}/allegro5/allegro_ttf.h
%exclude %{_includedir}/allegro5/allegro_video.h
%{_libdir}/pkgconfig/allegro-5.pc
%dir %{_prefix}/lib/cmake
%dir %{_prefix}/lib/cmake/allegro
%{_prefix}/lib/cmake/allegro/AllegroConfig.cmake
%{_prefix}/lib/cmake/allegro/AllegroConfigVersion.cmake
%{_prefix}/lib/cmake/allegro/AllegroTargets-relwithdebinfo.cmake
%{_prefix}/lib/cmake/allegro/AllegroTargets.cmake

%files -n liballegro-doc
%{_datadir}/doc/%{name}/
%{_mandir}/man3/*

%files -n liballegro_primitives%{allegro_so_nr}
%{_libdir}/liballegro_primitives.so.%{dot_allegro_so_nr}*

%files -n liballegro_primitives%{allegro_so_nr}-devel
%{_libdir}/liballegro_primitives.so
%{_includedir}/allegro5/allegro_primitives.h
%{_libdir}/pkgconfig/allegro_primitives-5.pc

%files -n liballegro_acodec%{allegro_so_nr}
%{_libdir}/liballegro_acodec.so.%{dot_allegro_so_nr}*

%files -n liballegro_acodec%{allegro_so_nr}-devel
%{_libdir}/liballegro_acodec.so
%{_includedir}/allegro5/allegro_acodec.h
%{_libdir}/pkgconfig/allegro_acodec-5.pc

%files -n liballegro_audio%{allegro_so_nr}
%{_libdir}/liballegro_audio.so.%{dot_allegro_so_nr}*

%files -n liballegro_audio%{allegro_so_nr}-devel
%{_libdir}/liballegro_audio.so
%{_includedir}/allegro5/allegro_audio.h
%{_libdir}/pkgconfig/allegro_audio-5.pc

%files -n liballegro_color%{allegro_so_nr}
%{_libdir}/liballegro_color.so.%{dot_allegro_so_nr}*

%files -n liballegro_color%{allegro_so_nr}-devel
%{_libdir}/liballegro_color.so
%{_includedir}/allegro5/allegro_color.h
%{_libdir}/pkgconfig/allegro_color-5.pc

%files -n liballegro_dialog%{allegro_so_nr}
%{_libdir}/liballegro_dialog.so.%{dot_allegro_so_nr}*

%files -n liballegro_dialog%{allegro_so_nr}-devel
%{_libdir}/liballegro_dialog.so
%{_includedir}/allegro5/allegro_native_dialog.h
%{_libdir}/pkgconfig/allegro_dialog-5.pc

%files -n liballegro_font%{allegro_so_nr}
%{_libdir}/liballegro_font.so.%{dot_allegro_so_nr}*

%files -n liballegro_font%{allegro_so_nr}-devel
%{_libdir}/liballegro_font.so
%{_includedir}/allegro5/allegro_font.h
%{_libdir}/pkgconfig/allegro_font-5.pc

%files -n liballegro_image%{allegro_so_nr}
%{_libdir}/liballegro_image.so.%{dot_allegro_so_nr}*

%files -n liballegro_image%{allegro_so_nr}-devel
%{_libdir}/liballegro_image.so
%{_includedir}/allegro5/allegro_image.h
%{_libdir}/pkgconfig/allegro_image-5.pc

%files -n liballegro_main%{allegro_so_nr}
%{_libdir}/liballegro_main.so.%{dot_allegro_so_nr}*

%files -n liballegro_main%{allegro_so_nr}-devel
%{_libdir}/liballegro_main.so
%{_libdir}/pkgconfig/allegro_main-5.pc

%files -n liballegro_memfile%{allegro_so_nr}
%{_libdir}/liballegro_memfile.so.%{dot_allegro_so_nr}*

%files -n liballegro_memfile%{allegro_so_nr}-devel
%{_libdir}/liballegro_memfile.so
%{_includedir}/allegro5/allegro_memfile.h
%{_libdir}/pkgconfig/allegro_memfile-5.pc

%files -n liballegro_physfs%{allegro_so_nr}
%{_libdir}/liballegro_physfs.so.%{dot_allegro_so_nr}*

%files -n liballegro_physfs%{allegro_so_nr}-devel
%{_libdir}/liballegro_physfs.so
%{_includedir}/allegro5/allegro_physfs.h
%{_libdir}/pkgconfig/allegro_physfs-5.pc

%files -n liballegro_ttf%{allegro_so_nr}
%{_libdir}/liballegro_ttf.so.%{dot_allegro_so_nr}*

%files -n liballegro_ttf%{allegro_so_nr}-devel
%{_libdir}/liballegro_ttf.so
%{_includedir}/allegro5/allegro_ttf.h
%{_libdir}/pkgconfig/allegro_ttf-5.pc

%files -n liballegro_video%{allegro_so_nr}
%{_libdir}/liballegro_video.so.%{dot_allegro_so_nr}*

%files -n liballegro_video%{allegro_so_nr}-devel
%{_libdir}/liballegro_video.so
%{_includedir}/allegro5/allegro_video.h
%{_libdir}/pkgconfig/allegro_video-5.pc

%changelog