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 ===============" \
    find %{buildroot}%{octpackages_dir} %{buildroot}%{octlib_dir} '(' -name '*.m' -o -name '*.*-tst' ')' '(' -exec grep -q '%%! *test' '{}' ';' -printf 'test: %%P\\n' -o -printf 'skip: %%P\\n' ')' || true \
    for fpath in $(find %{buildroot}%{octpackages_dir} %{buildroot}%{octlib_dir} '(' -name '*.m' -o -name '*.*-tst' ')' -exec grep -q '%%! *test' '{}' ';' -printf '%%P ') ; do \
        filename="${fpath##%{octpkg}-%{version}/}" ; \
        basename="${filename%.m}" ; \
        logname=test-"${filename//[\\/@]/_}".log ; \
        if echo $basename | grep -q -v -E '^(%{octskiptests})$' ; then \
          %octave --eval "pkg load %{octpkg}; test $basename" > ${logname} ; \
          if grep -s 'test *failed' ${logname} ; then \
            echo "Failed tests for %{octpkg}-%{version}" ; \
            cat ${logname} ; \
          else \
            grep -i test ${logname} || true \
          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