# Autotools default configurations

variables:

  autogen: |
    export NOCONFIGURE=1;
    if [ -e autogen ]; then ./autogen;
    elif [ -e autogen.sh ]; then ./autogen.sh;
    elif [ -e bootstrap ]; then ./bootstrap;
    elif [ -e bootstrap.sh ]; then ./bootstrap.sh;
    else autoreconf -ivf;
    fi

  # Project-wide extra arguments to be passed to `configure`
  conf-global: ''

  # Element-specific extra arguments to be passed to `configure`.
  conf-local: ''

  # For backwards compatibility only, do not use.
  conf-extra: ''

  conf-cmd: ./configure
  conf-args: |

    --prefix=%{prefix} \
    --exec-prefix=%{exec_prefix} \
    --bindir=%{bindir} \
    --sbindir=%{sbindir} \
    --sysconfdir=%{sysconfdir} \
    --datadir=%{datadir} \
    --includedir=%{includedir} \
    --libdir=%{libdir} \
    --libexecdir=%{libexecdir} \
    --localstatedir=%{localstatedir} \
    --sharedstatedir=%{sharedstatedir} \
    --mandir=%{mandir} \
    --infodir=%{infodir} %{conf-extra} %{conf-global} %{conf-local}

  configure: |

    %{conf-cmd} %{conf-args}

  make: make
  make-install: make -j1 DESTDIR="%{install-root}" install

  # Set this if the sources cannot handle parallelization.
  #
  # notparallel: True

config:

  # Commands for configuring the software
  #
  configure-commands:
  - |
    %{autogen}
  - |
    %{configure}

  # Commands for building the software
  #
  build-commands:
  - |
    %{make}

  # Commands for installing the software into a
  # destination folder
  #
  install-commands:
  - |
    %{make-install}

  # Commands for stripping debugging information out of
  # installed binaries
  #
  strip-commands:
  - |
    %{strip-binaries}

# Use max-jobs CPUs for building and enable verbosity
environment:
  MAKEFLAGS: -j%{max-jobs}
  V: 1

# And dont consider MAKEFLAGS or V as something which may
# effect build output.
environment-nocache:
- MAKEFLAGS
- V
