##
##  vorbis-libs.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package version
%define       V_whole     1.3.6
%define       V_libao     1.2.0
%define       V_libogg    1.3.6
%define       V_libvorbis 1.3.7

#   package information
Name:         vorbis-libs
Summary:      Ogg Vorbis Libraries
URL:          http://www.vorbis.com/
Vendor:       The Ogg Vorbis Project
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        PLUS
Group:        Audio
License:      LGPL
Version:      %{V_whole}
Release:      20250623

#   list of sources
Source0:      http://downloads.xiph.org/releases/ao/libao-%{V_libao}.tar.gz
Source1:      http://downloads.xiph.org/releases/ogg/libogg-%{V_libogg}.tar.gz
Source2:      http://downloads.xiph.org/releases/vorbis/libvorbis-%{V_libvorbis}.tar.gz

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, make, gcc
PreReq:       OpenPKG, openpkg >= 20160101

%description
    These are the Ogg Vorbis core libraries.

%track
    prog vorbis-libs:libao = {
        version   = %{V_libao}
        url       = http://www.xiph.org/ao/
        regex     = libao-(__VER__)\.tar\.gz
    }
    prog vorbis-libs:libogg = {
        version   = %{V_libogg}
        url       = http://downloads.xiph.org/releases/ogg/
        regex     = libogg-(__VER__)\.tar\.gz
    }
    prog vorbis-libs:libvorbis = {
        version   = %{V_libvorbis}
        url       = http://downloads.xiph.org/releases/vorbis/
        regex     = libvorbis-(__VER__)\.tar\.gz
    }

%prep
    %setup -q -c
    %setup -q -T -D -a 1
    %setup -q -T -D -a 2

%build
    #   build libao
    ( cd libao-%{V_libao}
      %{l_shtool} subst \
          -e 's;^\(libao_la_LDFLAGS.*\) -ldl;\1;' \
          src/Makefile.in
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      CPPFLAGS="%{l_cppflags}" \
      LDFLAGS="%{l_ldflags}" \
      ./configure \
          --prefix=%{l_prefix} \
          --mandir=%{l_prefix}/man \
          --disable-esd \
          --enable-shared \
          --enable-static
      %{l_make} %{l_mflags -O}
    ) || exit $?

    #   build libogg
    ( cd libogg-%{V_libogg}
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      CPPFLAGS="%{l_cppflags}" \
      LDFLAGS="%{l_ldflags}" \
      ./configure \
          --prefix=%{l_prefix} \
          --disable-shared
      %{l_make} %{l_mflags -O}
    ) || exit $?

    #   build libvorbis
    ogg_libdir="`pwd`/libogg-%{V_libogg}/src"
    ogg_incdir="`pwd`/libogg-%{V_libogg}/include"
    ( cd libvorbis-%{V_libvorbis}
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      CPPFLAGS="%{l_cppflags}" \
      LDFLAGS="%{l_ldflags} -L$ogg_libdir/.libs" \
      ./configure \
          --prefix=%{l_prefix} \
          --with-ogg-libraries=$ogg_libdir \
          --with-ogg-includes=$ogg_incdir \
          --disable-shared
      %{l_shtool} subst \
          -e 's;^\(SUBDIRS.*\)examples\(.*\)$;\1 \2;' \
          Makefile
      %{l_make} %{l_mflags -O}
      %{l_shtool} subst \
          -e "s;-L$ogg_libdir/\\.libs/*;;" \
          -e "s;-L$ogg_libdir/*;;" \
          lib/*.la lib/.libs/*.la
    ) || exit $?

%install

    #   install libraries
    ( cd libao-%{V_libao}
      %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
      rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/*.s[ol]* >/dev/null 2>&1 || true
      %{l_shtool} subst \
          -e 's;^\(dlname\)=.*;\1="";' \
          -e 's;^\(library_names\)=.*;\1="";' \
          $RPM_BUILD_ROOT%{l_prefix}/lib/libao.la
    ) || exit $?
    ( cd libogg-%{V_libogg}
      %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    ) || exit $?
    ( cd libvorbis-%{V_libvorbis}
      %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    ) || exit $?

    #   strip installation
    rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true

    #   determine installation files
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
        %{l_files_std}

%files -f files

%clean

