autotools plugin
autotools - Autotools build element
This is a BuildElement
implementation for
using Autotools build scripts (also known as the GNU Build System).
You will often want to pass additional arguments to configure
. This should
be done on a per-element basis by setting the conf-local
variable. Here is
an example:
variables:
conf-local: |
--disable-foo --enable-bar
If you want to pass extra options to configure
for every element in your
project, set the conf-global
variable in your project.conf file. Here is
an example of that:
elements:
autotools:
variables:
conf-global: |
--disable-gtk-doc --disable-static
Here is the default configuration for the autotools
element in full:
# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Autotools default configurations variables: autogen: | export NOCONFIGURE=1; if [ -x %{conf-cmd} ]; then true; elif [ -x %{conf-root}/autogen ]; then %{conf-root}/autogen; elif [ -x %{conf-root}/autogen.sh ]; then %{conf-root}/autogen.sh; elif [ -x %{conf-root}/bootstrap ]; then %{conf-root}/bootstrap; elif [ -x %{conf-root}/bootstrap.sh ]; then %{conf-root}/bootstrap.sh; else autoreconf -ivf %{conf-root}; fi # Project-wide extra arguments to be passed to `configure` conf-global: '' # Element-specific extra arguments to be passed to `configure`. conf-local: '' conf-cmd: "%{conf-root}/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-global} %{conf-local} configure: | %{conf-cmd} %{conf-args} make-args: "" make-install-args: >- %{make-args} DESTDIR="%{install-root}" install make: make %{make-args} make-install: make -j1 %{make-install-args} # Set this if the sources cannot handle parallelization. # # notparallel: True # Automatically remove libtool archive files # # Set remove-libtool-modules to "true" to remove .la files for # modules intended to be opened with lt_dlopen() # # Set remove-libtool-libraries to "true" to remove .la files for # libraries # # Value must be "true" or "false" remove-libtool-modules: "false" remove-libtool-libraries: "false" delete-libtool-archives: | if %{remove-libtool-modules} || %{remove-libtool-libraries}; then find "%{install-root}" -name "*.la" -print0 | while read -d '' -r file; do if grep '^shouldnotlink=yes$' "${file}" &>/dev/null; then if %{remove-libtool-modules}; then echo "Removing ${file}." rm "${file}" else echo "Not removing ${file}." fi else if %{remove-libtool-libraries}; then echo "Removing ${file}." rm "${file}" else echo "Not removing ${file}." fi fi done fi 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} - | %{delete-libtool-archives} # 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 # affect build output. environment-nocache: - MAKEFLAGS - V
See built-in functionality documentation for details on common configuration options for build elements.