File octave.macros of Package octave

#
# Macros for Octave
#
%octave \
    %{_bindir}/octave --no-gui --no-window-system --norc --no-history --quiet

# Octave API
%octave_api %( \
    octave-config -p API_VERSION || echo 0)

# Octave directories
%octpackages_dir %{_datadir}/octave/packages
%octlib_dir %{_libdir}/octave/packages
%octsysw_settings %{_datadir}/octave/site/m/startup/octaverc

# Octave package source preparation
%octave_pkg_src \
    directory=`ls -d *` \
    if [ "$directory" != "%{octpkg}-%{version}" ]; then \
      mv $directory %{octpkg}-%{version} \
    fi \
    tar czf %{octpkg}-%{version}.tar.gz %{octpkg}-%{version}

# Octave package build
%octave_pkg_build \
    %octave --eval "pkg build -nodeps -verbose . %{octpkg}-%{version}.tar.gz"

%__octave_build_file %( \
    if test "%{_arch}" = "noarch"; then \
        echo %{octpkg}-%{version}-any-none.tar.gz \
    else \
        echo %{octpkg}-%{version}-*-*.tar.gz \
    fi \
)

# Octave package installation
%octave_pkg_install \
    HOME=${PWD} \
    mkdir -p %{buildroot}%{octpackages_dir} \
    mkdir -p %{buildroot}%{octlib_dir} \
    ls -la %{octpkg}-%{version}*.tar.gz \
    echo "Using %{__octave_build_file} for installation" \
    %octave --eval "pkg prefix %{buildroot}%{octpackages_dir} %{buildroot}%{octlib_dir}; pkg install -verbose -nodeps %{__octave_build_file}" \
    rm -f %{buildroot}%{octpackages_dir}/%{octpkg}-%{version}/packinfo/.autoload

# Octave package tests
%octskiptests .*fetch.*|ga|csape|tbl(read|write)|princomp

%octave_pkg_test \
    HOME=${PWD} \
    %octave --eval "pkg list" \
    echo "============= Test Start ===============" \
    [ -e %{octpkg}-%{version} ] || tar xaf %{__octave_build_file} \
    find %{octpkg}-%{version} -name '*.m' -o -name '*.*-tst' || true \
    for fpath in $(find %{octpkg}-%{version} -name '*.m' -o -name '*.*-tst') ; do \
      if grep -q '%%! *test' $fpath ; then \
        filename="${fpath##*/}" ; \
        basename="${filename%.m}" ; \
        if echo $basename | grep -q -v -E '^(%{octskiptests})$' ; then \
          %octave --eval "pkg load %{octpkg}; test $basename" > test-${basename}.log ; \
          if grep -s 'test *failed' test-${basename}.log ; then \
            echo "Failed tests for %{octpkg}-%{version}" ; \
            cat test-${basename}.log ; \
          else \
            grep -i test test-${basename}.log || true \
          fi ; \
        fi ; \
      fi ; \
    done \
    echo "============= Test Summary =============" \
    grep -i test test-*.log || true \
    echo "============= End Summary ==============" \
    ! grep -s 'test *failed' test-*.log || false \
    %{nil}

# Octave build parameters
%octave_blas OCTAVE_BLAS_LIBRARY_NAME
openSUSE Build Service is sponsored by