summaryrefslogtreecommitdiff
path: root/DEFAULTS
diff options
context:
space:
mode:
Diffstat (limited to 'DEFAULTS')
-rw-r--r--DEFAULTS252
1 files changed, 0 insertions, 252 deletions
diff --git a/DEFAULTS b/DEFAULTS
deleted file mode 100644
index 402e5889..00000000
--- a/DEFAULTS
+++ /dev/null
@@ -1,252 +0,0 @@
-# Baserock definitions defaults
-# =============================
-#
-# The DEFAULTS file is treated specially by Baserock build tools.
-#
-# For more information, see: <http://wiki.baserock.org/definitions/current>.
-
-
-# Baserock Definitions Build Step Defaults
-# ----------------------------------------
-#
-# The default names and ordering for build steps in a given chunk.
-#
-build-steps: ['pre-bootstrap-commands',
- 'bootstrap-commands',
- 'post-bootstrap-commands',
- 'pre-configure-commands',
- 'configure-commands',
- 'post-configure-commands',
- 'pre-build-commands',
- 'build-commands',
- 'post-build-commands',
- 'pre-test-commands',
- 'test-commands',
- 'post-test-commands',
- 'pre-install-commands',
- 'install-commands',
- 'post-install-commands',
- 'pre-strip-commands',
- 'strip-commands',
- 'post-strip-commands']
-
-
-# Predefined architecture constants
-# ---------------------------------
-#
-# Mapping from definitions architecture keywords to compiler keywords
-#
-cpus:
- x86_32: 'i686'
- armv8l64: 'aarch64'
- armv8b64: 'aarch64_be'
- mips64b: 'mips64'
- mips64l: 'mips64el'
- mips32b: 'mips'
- mips32l: 'mipsel'
-
-
-# Predefined build commands
-# -------------------------
-#
-# Common patterns in build instructions can be defined here, which can save
-# users from having to write lots of similar-looking chunk .morph files.
-#
-# There are pre- and post- variants for each set of commands. These exist so
-# you can add more commands without having to copy the defaults. For example,
-# to create an extra symlink after running `make install`, you can use
-# post-install-commands. Since these exist as a way of extending the defaults,
-# you cannot set default values for the pre- and post- commands.
-#
-# The set of environment variables available when these commands are executed
-# is not formally specified right now, but you can assume PREFIX, DESTDIR and
-# MORPH_ARCH are all set.
-#
-build-systems:
- manual:
- # The special, default 'no-op' build system.
- configure-commands: []
- build-commands: []
- install-commands: []
- strip-commands: []
-
- autotools:
- # GNU Autoconf and GNU Automake, or anything which follow the same pattern.
- #
- # See also: https://github.com/cgwalters/build-api/blob/master/build-api.md
- configure-commands:
- - >-
- 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;
- elif [ ! -e ./configure ]; then autoreconf -ivf;
- fi
- - ./configure --prefix="$PREFIX"
- --sysconfdir=/etc
- --localstatedir=/var
-
- build-commands:
- - make
- install-commands:
- - make DESTDIR="$DESTDIR" install
- strip-commands:
- # TODO: Make idempotent when files are hardlinks
- # Strip all ELF binary files that are executable or named like a library.
- # .so files for C, .cmxs for OCaml and .node for Node.
- #
- # The file name and permissions checks are done with the `find` command before
- # the ELF header is checked with the shell command, because it is a lot cheaper
- # to check the mode and file name first, because it is a metadata check, rather
- # than a subprocess and a file read.
- #
- # `file` is not used, to keep the dependency requirements down.
- - &generic-strip-command |
- find "$DESTDIR" -type f \
- '(' -perm -111 -o -name '*.so*' -o -name '*.cmxs' -o -name '*.node' ')' \
- -exec sh -ec \
- 'read -n4 hdr <"$1" # check for elf header
- if [ "$hdr" != "$(printf \\x7fELF)" ]; then
- exit 0
- fi
- debugfile="$DESTDIR$PREFIX/lib/debug/$(basename "$1")"
- mkdir -p "$(dirname "$debugfile")"
- objcopy --only-keep-debug "$1" "$debugfile"
- chmod 644 "$debugfile"
- strip --remove-section=.comment --remove-section=.note --strip-unneeded "$1"
- objcopy --add-gnu-debuglink "$debugfile" "$1"' - {} ';'
-
- python-distutils:
- # The Python distutils build systems.
- configure-commands: []
- build-commands:
- - python setup.py build
- install-commands:
- - python setup.py install --prefix "$PREFIX" --root "$DESTDIR"
- strip-commands:
- - *generic-strip-command
-
- python3-distutils:
- # The Python distutils build systems.
- configure-commands: []
- build-commands:
- - python3 setup.py build
- install-commands:
- - python3 setup.py install --prefix "$PREFIX" --root "$DESTDIR"
- strip-commands:
- - *generic-strip-command
-
- cpan:
- # The Perl ExtUtil::MakeMaker build system. This is called the 'cpan' build
- # system for historical reasons.
- #
- # To install perl distributions into the correct location in our chroot
- # we need to set PREFIX to <destdir>/<prefix> in the configure-commands.
- #
- # The mapping between PREFIX and the final installation
- # directories is complex and depends upon the configuration of perl
- # see,
- # https://metacpan.org/pod/distribution/perl/INSTALL#Installation-Directories
- # and ExtUtil::MakeMaker's documentation for more details.
- configure-commands:
- - perl Makefile.PL PREFIX=$DESTDIR$PREFIX
- build-commands:
- - make
- install-commands:
- - make install
- strip-commands:
- - *generic-strip-command
-
- module-build:
- # The Module::Build build system
- #
- # See the comment in ExtUtilsMakeMakerBuildSystem to see why --prefix is
- # set to $DESTDIR$PREFIX here (--prefix in Module::Build has the same
- # meaning as PREFIX in ExtUtils::MakeMaker).
- configure-commands:
- - perl Build.PL --prefix "$DESTDIR$PREFIX"
- build-commands:
- - ./Build
- install-commands:
- - ./Build install
- strip-commands:
- - *generic-strip-command
-
- cmake:
- # The CMake build system.
- configure-commands:
- - cmake -DCMAKE_INSTALL_PREFIX="$PREFIX"
- build-commands:
- - make
- install-commands:
- - make DESTDIR="$DESTDIR" install
- strip-commands:
- - *generic-strip-command
-
- qmake:
- # The Qt build system.
- configure-commands:
- - qmake -makefile
- build-commands:
- - make
- install-commands:
- - make INSTALL_ROOT="$DESTDIR" install
- strip-commands:
- - *generic-strip-command
-
-
-# Predefined artifact splitting rules
-# -----------------------------------
-#
-# Once a build has completed, you have some files that have been installed into
-# $DESTDIR. The splitting rules control how many 'artifact' tarballs are
-# generated as a result of the build, and which files from $DESTDIR end up in
-# which 'artifact'.
-#
-# The default split rules are defined here. These can be overriden in
-# individual chunk .morph files and stratum .morph files using the 'products'
-# field.
-#
-split-rules:
- chunk:
- - artifact: -bins
- include:
- - (usr/)?s?bin/.*
- - artifact: -libs
- include:
- - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*
- - (usr/)libexec/.*
- - artifact: -devel
- include:
- - (usr/)?include/.*
- - (usr/)?lib(32|64)?/lib.*\.a
- - (usr/)?lib(32|64)?/lib.*\.la
- - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc
- - artifact: -doc
- include:
- - (usr/)?share/doc/.*
- - (usr/)?share/man/.*
- - (usr/)?share/info/.*
- - artifact: -locale
- include:
- - (usr/)?share/locale/.*
- - (usr/)?share/i18n/.*
- - (usr/)?share/zoneinfo/.*
- - artifact: -misc
- include:
- - .*
-
- stratum:
- - artifact: -devel
- include:
- - .*-devel
- - .*-debug
- - .*-doc
- - artifact: -runtime
- include:
- - .*-bins
- - .*-libs
- - .*-locale
- - .*-misc
- - .*