summaryrefslogtreecommitdiffhomepage
path: root/etc
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2021-05-12 22:10:38 +0100
committerLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2021-05-12 22:10:38 +0100
commitb9a71579b82cd54980ff641af504bc8ad96473b1 (patch)
treee8dc1e7f2044995415ae2e21e67a60da7fe9a13b /etc
parentb7c3731e3e4104b444a0061ba4505b9bbb533906 (diff)
downloadmidipix_build-b9a71579b82cd54980ff641af504bc8ad96473b1.tar.bz2
midipix_build-b9a71579b82cd54980ff641af504bc8ad96473b1.tar.xz
Implements CMake support.
etc/README.md: updated. groups/{000.host_tools,010.host_deps,200.native_packages,800.minipix}.group:${*_SOFORT_NATIVE_{C,CXX,LD}FLAGS}: merged into midipix.env. groups/010.host_deps.group:{clang,cmake_host,libzip,llvm}_host:${PKG_CMAKE_ARGS_EXTRA}: added. groups/010.host_deps.group:cmake_host:${PKG_CONFIGURE_TYPE}: configure w/ cmake. groups/010.host_deps.group:cmake_host:${PKG_INSTALL_FILES}: added. groups/010.host_deps.group:expat_host:${PKG_CONFIGURE_TYPE}: configure w/ autotools. groups/010.host_deps.group:python[23]_host:${PKG_{ENV_VARS_EXTRA,SOFORT_FORCE}}: removed. groups/010.host_deps.group:python[23]_host:${PKG_CONFIGURE_TYPE}: configure w/ sofort. groups/010.host_deps.group:python[23]_host:${PKG_SOFORT_NATIVE_CC}: removed. groups/221.native_packages_dev.group:python[23]:${PKG_SOFORT_FORCE}: removed. groups/221.native_packages_dev.group:python[23]:${PKG_CONFIGURE_TYPE}: configure w/ sofort. groups/231.native_packages_etc.group:{cmake,minizip,openjpeg,tdnf,xpdf}:${PKG_CMAKE_ARGS_EXTRA}: added. groups/231.native_packages_etc.group:cmake:${PKG_CONFIGURE_ARGS}: removed. groups/231.native_packages_etc.group:utf8proc:${PKG_IN_TREE}: don't build in-tree. groups/251.native_packages_lib.group:lib{jpeg_turbo,solv,ssh,zip}:${PKG_CMAKE_ARGS_EXTRA}: added. midipix.env:${DEFAULT_BUILD_VARS}: adds ${PKG_{CMAKE{,_{ARGS{,_EXTRA},LISTFILE}},CONFIGURE_TYPE},SOFORT_NATIVE_{C{C,XX},{C,CXX,LD}FLAGS,LD}}. midipix.env:${DEFAULT_BUILD_VARS}: removes ${PKG_SOFORT_FORCE}. midipix.env:${DEFAULT_{CMAKE_LISTFILE,{CROSS,HOST,NATIVE}_CMAKE}}: added. subr.rtl/rtl_complex.subr:rtl_export_vars(): ignore values during -u. subr.rtl/rtl_platform.subr:rtl_set_vars(): updated. subr/ex_pkg_env.subr:exp_pkg_env_set(): always convert ${PKG_{AR,CC,CXX,PKG_CONFIG,RANLIB}} to absolute pathnames. subr/ex_pkg_env.subr:ex_pkg_env_sofort(): merged into subr/pkg_configure.subr. subr/ex_pkg_restart.subr:ex_pkg_process_restart_spec(): remove extraneous echo. subr/pkg_configure.subr:pkgp_configure_{cmake,sofort}(): initial implementation. subr/pkg_configure.subr:pkg_configure(): attempt configuration using autotools, sofort, or cmake. subr/pkg_configure_autotools.subr: skip if ${PKG_CONFIGURE_TYPE} is set and not "autotools". subr/pkg_fetch_clean.subr: fix typo. vars/{clang_host,cmake{,_host},lib{jpeg_turbo,solv,ssh,zip{,_host}},llvm_host,lolcode,minizip,openjpeg,tdnf,xpdf}.vars: deleted.
Diffstat (limited to 'etc')
-rw-r--r--etc/README.md184
1 files changed, 101 insertions, 83 deletions
diff --git a/etc/README.md b/etc/README.md
index be8c54f6..8bde798e 100644
--- a/etc/README.md
+++ b/etc/README.md
@@ -563,22 +563,26 @@ Build step status is tracked on a per-package basis by state files beneath
``${BUILD_WORKDIR}`` following the format ``.<package name>.<build step>``;
package build completion corresponds to the pseudo-build step ``finish``.
-| Name | Description |
-| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| fetch_download | Download package archive & verify w/ SHA-256 message digest and/or clone Git repository/ies |
-| fetch_extract | Extract package archive, if any |
-| configure_patch_pre | Apply ``chainport`` patches and/or patches beneath ``patches/`` prior to (GNU autotools or similar) configuration |
-| configure_autotools | Bootstrap (GNU autools or similar) environment, and install ``config.sub`` and ``config.cache`` |
-| configure_patch | Apply patches beneath ``patches/`` and/or set in ``${PKG_PATCHES_EXTRA}`` after (GNU autotools or similar) configuration |
-| configure | Perform package (GNU autools or similar) configuration w/ configuration-time set of environment variables |
-| build | Call ``make(1)`` w/ build-time set of make variables |
-| install_subdirs | Create default directory hierarchy in ``${PKG_DESTDIR}``, optionally amended w/ ``${PKG_INSTALL_FILES_DESTDIR_EXTRA}`` |
-| install_make | Call ``make(1)`` w/ ``${PKG_INSTALL_TARGET}`` (defaults to ``install``) and installation-time set of make variables |
-| install_files | Install ``${PKG_INSTALL_FILES}``, fix directory and file mode bits within ``${PKG_DESTDIR}`` and optionally ``${PKG_DESTDIR_HOST}``, ``pkgconf(1)`` package files, and/or stripped binaries within ``${PKG_DESTDIR}`` |
-| install_libs | Purge libtool ``.la`` files and install shared objects within ``${PKG_DESTDIR}`` w/ ``perk`` and corresponding symbolic links |
-| install | Install into ``${PKG_PREFIX}``, and optionally ``${PKG_DESTDIR_HOST}`` into ``${PREFIX}``, under mutex, and add package to ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` (unless inhibited) |
-| install_rpm | Build package RPM w/ auto-generated specifiation file based on ``etc/package.spec`` beneath ``${PREFIX_RPM}`` |
-| clean | Clean ``${PKG_BUILD_DIR}`` and/or ``${PKG_DESTDIR}`` and/or ``${PKG_DESTDIR_HOST}`` and/or ``${PKG_BASE_DIR}/${PKG_SUBDIR}`` as per ``-C build,dest,src``, resp., if any |
+| Name | Description |
+| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| fetch_clean | Delete and create ``${PKG_SUBDIR}'' |
+| fetch_download | Download package archive & verify w/ SHA-256 message digest and/or clone Git repository/ies |
+| fetch_extract | Extract package archive, if any |
+| configure_clean | Delete and create ``${PKG_BUILD_DIR}'' |
+| configure_patch_pre | Apply ``chainport`` patches and/or patches beneath ``patches/`` prior to (GNU autotools or similar) configuration |
+| configure_autotools | Bootstrap (GNU autools or similar) environment, and install ``config.sub`` and ``config.cache`` |
+| configure_patch | Apply patches beneath ``patches/`` and/or set in ``${PKG_PATCHES_EXTRA}`` after (GNU autotools or similar) configuration |
+| configure | Perform package (GNU autools or similar or CMake) configuration w/ configuration-time set of environment variables |
+| build_clean | Clean ``${PKG_BUILD_DIR}'' w/ ``make clean'' invocation |
+| build | Call ``make(1)`` w/ build-time set of make variables |
+| install_clean | Delete and create ``${PKG_DESTDIR}'' |
+| install_subdirs | Create default directory hierarchy in ``${PKG_DESTDIR}``, optionally amended w/ ``${PKG_INSTALL_FILES_DESTDIR_EXTRA}`` |
+| install_make | Call ``make(1)`` w/ ``${PKG_INSTALL_TARGET}`` (defaults to ``install``) and installation-time set of make variables |
+| install_files | Install ``${PKG_INSTALL_FILES}``, fix directory and file mode bits within ``${PKG_DESTDIR}`` and optionally ``${PKG_DESTDIR_HOST}``, ``pkgconf(1)`` package files, and/or stripped binaries within ``${PKG_DESTDIR}`` |
+| install_libs | Purge libtool ``.la`` files and install shared objects within ``${PKG_DESTDIR}`` w/ ``perk`` and corresponding symbolic links |
+| install | Install into ``${PKG_PREFIX}``, and optionally ``${PKG_DESTDIR_HOST}`` into ``${PREFIX}``, under mutex, and add package to ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` (unless inhibited) |
+| install_rpm | Build package RPM w/ auto-generated specifiation file based on ``etc/package.spec`` beneath ``${PREFIX_RPM}`` |
+| clean | Clean ``${PKG_BUILD_DIR}`` and/or ``${PKG_DESTDIR}`` and/or ``${PKG_DESTDIR_HOST}`` and/or ``${PKG_BASE_DIR}/${PKG_SUBDIR}`` as per ``-C build,dest,src``, resp., if any |
[Back to top](#table-of-contents)
@@ -611,73 +615,87 @@ line, with each variable prefixed w/ ``PKG_``, e.g.:
The minimum set of package variables that must be provided is ``SHA256SUM, URL,
VERSION`` and/or ``URLS_GIT``, respectively.
-| Package variable name | Description |
-| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
-| AR | Command- or pathname of toolchain library archive editor ``ar(1)`` |
-| BASE_DIR | Absolute pathname to package build root directory beneath ``${BUILD_WORKDIR}`` |
-| BUILD_DIR | Directory name of package build directory beneath ``${PKG_BASE_DIR}`` |
-| BUILD_STEPS_DISABLE | List of build steps to disable during package build |
-| BUILD_TYPE | Cross-compiled toolchain (``cross``,) host (``host``,) or cross-compiled package (``native``) build type |
-| CC | Command- or pathname of toolchain C compiler ``cc(1)`` |
-| CFLAGS_BUILD | C compiler flags during package ``make(1)`` build |
-| CFLAGS_BUILD_EXTRA | Additional C compiler flags during package ``make(1)`` build |
-| CFLAGS_CONFIGURE | C compiler flags during package (GNU autotools or similar) configuration |
-| CFLAGS_CONFIGURE_EXTRA | Additional C compiler flags during package (GNU autotools or similar) configuration |
-| CONFIG_CACHE | List of GNU autotools configuration cache variables |
-| CONFIG_CACHE_EXTRA | Additional list of GNU autotools configuration cache variables |
-| CONFIG_CACHE_LOCAL | Additional list of GNU autotools configuration cache variables |
-| CONFIGURE | Command- or pathname to package (GNU autotools or similar) configuration script |
-| CONFIGURE_ARGS | List of arguments to package (GNU autotools or similar) configuration script |
-| CONFIGURE_ARGS_EXTRA | Additional list of arguments to package (GNU autotools or similar) configuration script |
-| CXX | Command- or pathname of toolchain C++ compiler ``c++(1)`` |
-| CXXFLAGS_CONFIGURE | List of C++ compiler flags during package (GNU autotools or similar) configuration |
-| CXXFLAGS_CONFIGURE_EXTRA | Additional list of C++ compiler flags during package (GNU autotools or similar) configuration |
-| DEPENDS | List of package-package dependencies |
-| DESTDIR | Directory name of package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| DESTDIR_HOST | Directory name of optional host package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| DISABLED | Disable package |
-| ENV_VARS_EXTRA | List of double colon-separated environment variable equality sign-separated name-value pairs to set during package build |
-| FNAME | Filename of package archive file |
-| FORCE_AUTORECONF | Forcibly run ``autoreconf -fiv`` prior to package (GNU autotools or similar) configuration |
-| GITROOT | midipix packages Git URL prefix |
-| INHERIT_FROM | Inherit variables from named package |
-| INSTALL_FILES | Whitespace-separated list of files to manually install into the package installation destination directory beneath ``${PKG_BASE_DIR}`` |
-| INSTALL_FILES_DESTDIR | Whitespace-separated list of files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
-| INSTALL_FILES_DESTDIR_EXTRA | Additional whitespace-separated list of files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
-| INSTALL_TARGET | Name of package build ``make(1)`` installation target |
-| INSTALL_TARGET_EXTRA | Additional name of package build ``make(1)`` installation target |
-| IN_TREE | Build package in-tree within ``${PKG_SUBDIR}`` |
-| LDFLAGS_BUILD_EXTRA | Additional linker flags during package ``make(1)`` build |
-| LDFLAGS_CONFIGURE | Linker flags during package (GNU autotools or similar) configuration |
-| LDFLAGS_CONFIGURE_EXTRA | Additional linker flags during package (GNU autotools or similar) configuration |
-| LIBTOOL | Command- or pathname of ``libtool(1)`` (defaults to ``slibtool``) |
-| MAKE | Command line of ``make(1)`` |
-| MAKE_SUBDIRS | List of ``make(1)`` subdirectories to exclusively build |
-| MAKEFLAGS_BUILD | List of ``make(1)`` flags during package ``make(1)`` build |
-| MAKEFLAGS_BUILD_EXTRA | Additional list of ``make(1)`` flags during package ``make(1)`` build |
-| MAKEFLAGS_INSTALL | List of ``make(1)`` flags during package ``make(1)`` installation |
-| MAKEFLAGS_INSTALL_EXTRA | Additional list of ``make(1)`` flags during package ``make(1)`` installation |
-| MAKEFLAGS_VERBOSITY | Variable-value pair to pass to ``make(1)`` in order to force echo-back of command lines prior to execution |
-| MAKE_INSTALL_VNAME | Variable name of ``make(1)`` installation destination directory variable during package ``make(1)`` installation |
-| MIRRORS | List of package archive mirror base URLs to attempt downloading from; cf. ``pkgtool.sh -m <dname>`` |
-| MIRRORS_GIT | List of package Git repository mirror base URLs to attempt cloning from; cf. ``pkgtool.sh -m <dname>`` |
-| NO_CLEAN | Inhibit cleaning of package build directory beneath ``${PKG_BASE_DIR}`` pre-finish |
-| NO_CLEAN_BASE_DIR | Inhibit cleaning of package build root directory beneath ``${BUILD_WORKDIR}`` |
-| NO_LOG_VARS | Inhibit logging of build & package variables pre-package build |
-| PATCHES_EXTRA | Additional list of patches to apply |
-| PKG_CONFIG | Command- or pathname of ``pkg-config(1)`` |
-| PKG_CONFIG_LIBDIR | ``pkg-config(1)`` search directory |
-| PKGLIST_DISABLE | Inhibit inclusion into ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` |
-| PREFIX | Absolute pathname of top-level installation directory and package search path |
-| PYTHON | Command- or pathname of Python |
-| RANLIB | Command- or pathname of toolchain library archive index generator ``ranlib(1)`` |
-| RPM_DISABLE | Inhibit creation of RPM archive |
-| SHA256SUM | SHA-256 message digest of package archive |
-| SUBDIR | Name of extracted archive or git-{clone,pull}(1)'d directory |
-| TARGET | Dash-separated {build,host,target} triplet |
-| URL | URL to package archive, optionally appended with whitespace-separated list of alternative URLs |
-| URLS_GIT | List of package Git URL(s) (``*name*=*URL*@*branch*``) |
-| VERSION | Package version |
+| Package variable name | Description |
+| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| AR | Command- or pathname of toolchain library archive editor ``ar(1)`` |
+| BASE_DIR | Absolute pathname to package build root directory beneath ``${BUILD_WORKDIR}`` |
+| BUILD_DIR | Directory name of package build directory beneath ``${PKG_BASE_DIR}`` |
+| BUILD_STEPS_DISABLE | List of build steps to disable during package build |
+| BUILD_TYPE | Cross-compiled toolchain (``cross``,) host (``host``,) or cross-compiled package (``native``) build type |
+| CC | Command- or pathname of toolchain C compiler ``cc(1)`` |
+| CFLAGS_BUILD | C compiler flags during package ``make(1)`` build |
+| CFLAGS_BUILD_EXTRA | Additional C compiler flags during package ``make(1)`` build |
+| CFLAGS_CONFIGURE | C compiler flags during package (GNU autotools or similar) configuration |
+| CFLAGS_CONFIGURE_EXTRA | Additional C compiler flags during package (GNU autotools or similar) configuration |
+| CMAKE | Command- or pathname to ``cmake(1)`` |
+| CMAKE_ARGS | List of arguments to ``cmake(1)`` |
+| CMAKE_ARGS_EXTRA | Additional list of arguments to ``cmake(1)`` |
+| CMAKE_LISTFILE | File- or pathname to ``cmake(1)`` listfile |
+| CONFIG_CACHE | List of GNU autotools configuration cache variables |
+| CONFIG_CACHE_EXTRA | Additional list of GNU autotools configuration cache variables |
+| CONFIG_CACHE_LOCAL | Additional list of GNU autotools configuration cache variables |
+| CONFIGURE | Command- or pathname to package (GNU autotools or similar) configuration script |
+| CONFIGURE_ARGS | List of arguments to package (GNU autotools or similar) configuration script |
+| CONFIGURE_ARGS_EXTRA | Additional list of arguments to package (GNU autotools or similar) configuration script |
+| CONFIGURE_TYPE | Force package configuration via either of ``autotools`` (GNU autotools or similar) or ``sofort`` or ``cmake`` (CMake) |
+| CXX | Command- or pathname of toolchain C++ compiler ``c++(1)`` |
+| CXXFLAGS_CONFIGURE | List of C++ compiler flags during package (GNU autotools or similar) configuration |
+| CXXFLAGS_CONFIGURE_EXTRA | Additional list of C++ compiler flags during package (GNU autotools or similar) configuration |
+| DEPENDS | List of package-package dependencies |
+| DESTDIR | Directory name of package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| DESTDIR_HOST | Directory name of optional host package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| DISABLED | Disable package |
+| ENV_VARS_EXTRA | List of double colon-separated environment variable equality sign-separated name-value pairs to set during package build |
+| FNAME | Filename of package archive file |
+| FORCE_AUTORECONF | Forcibly run ``autoreconf -fiv`` prior to package (GNU autotools or similar) configuration |
+| GITROOT | midipix packages Git URL prefix |
+| INHERIT_FROM | Inherit variables from named package |
+| INSTALL_FILES | Whitespace-separated list of files to manually install into the package installation destination directory beneath ``${PKG_BASE_DIR}`` |
+| INSTALL_FILES_DESTDIR | Whitespace-separated list of files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
+| INSTALL_FILES_DESTDIR_EXTRA | Additional whitespace-separated list of files to initialise the package installation destination directory beneath ``${PKG_BASE_DIR}`` with |
+| INSTALL_TARGET | Name of package build ``make(1)`` installation target |
+| INSTALL_TARGET_EXTRA | Additional name of package build ``make(1)`` installation target |
+| IN_TREE | Build package in-tree within ``${PKG_SUBDIR}`` |
+| LDFLAGS_BUILD_EXTRA | Additional linker flags during package ``make(1)`` build |
+| LDFLAGS_CONFIGURE | Linker flags during package (GNU autotools or similar) configuration |
+| LDFLAGS_CONFIGURE_EXTRA | Additional linker flags during package (GNU autotools or similar) configuration |
+| LIBTOOL | Command- or pathname of ``libtool(1)`` (defaults to ``slibtool``) |
+| MAKE | Command line of ``make(1)`` |
+| MAKEFLAGS_BUILD_EXTRA | Additional list of ``make(1)`` flags during package ``make(1)`` build |
+| MAKEFLAGS_BUILD | List of ``make(1)`` flags during package ``make(1)`` build |
+| MAKEFLAGS_INSTALL_EXTRA | Additional list of ``make(1)`` flags during package ``make(1)`` installation |
+| MAKEFLAGS_INSTALL | List of ``make(1)`` flags during package ``make(1)`` installation |
+| MAKEFLAGS_VERBOSITY | Variable-value pair to pass to ``make(1)`` in order to force echo-back of command lines prior to execution |
+| MAKE_INSTALL_VNAME | Variable name of ``make(1)`` installation destination directory variable during package ``make(1)`` installation |
+| MAKE_SUBDIRS | List of ``make(1)`` subdirectories to exclusively build |
+| MIRRORS_GIT | List of package Git repository mirror base URLs to attempt cloning from; cf. ``pkgtool.sh -m <dname>`` |
+| MIRRORS | List of package archive mirror base URLs to attempt downloading from; cf. ``pkgtool.sh -m <dname>`` |
+| NO_CLEAN | Inhibit cleaning of package build directory beneath ``${PKG_BASE_DIR}`` pre-finish |
+| NO_CLEAN_BASE_DIR | Inhibit cleaning of package build root directory beneath ``${BUILD_WORKDIR}`` |
+| NO_LOG_VARS | Inhibit logging of build & package variables pre-package build |
+| PATCHES_EXTRA | Additional list of patches to apply |
+| PKG_CONFIG | Command- or pathname of ``pkg-config(1)`` |
+| PKG_CONFIG_LIBDIR | ``pkg-config(1)`` search directory |
+| PKGLIST_DISABLE | Inhibit inclusion into ``${PREFIX}/pkglist.${PKG_BUILD_TYPE}`` |
+| PREFIX | Absolute pathname of top-level installation directory and package search path |
+| PYTHON | Command- or pathname of Python |
+| RANLIB | Command- or pathname of toolchain library archive index generator ``ranlib(1)`` |
+| RPM_DISABLE | Inhibit creation of RPM archive |
+| SHA256SUM | SHA-256 message digest of package archive |
+| SOFORT_NATIVE_CC | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C compiler ``cc(1)`` |
+| SOFORT_NATIVE_CFLAGS | ``sofort`` variable during ``native`` build: C compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CFLAGS_EXTRA | ``sofort`` variable during ``native`` build: Additional C compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CXX | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C++ compiler ``c++(1)`` |
+| SOFORT_NATIVE_CXXFLAGS | ``sofort`` variable during ``native`` build: List of C++ compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_CXXFLAGS_EXTRA | ``sofort`` variable during ``native`` build: Additional list of C++ compiler flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_LD | ``sofort`` variable during ``native`` build: Command- or pathname of toolchain C compiler ``cc(1)`` |
+| SOFORT_NATIVE_LDFLAGS | ``sofort`` variable during ``native`` build: Linker flags during package (GNU autotools or similar) configuration |
+| SOFORT_NATIVE_LDFLAGS_EXTRA | ``sofort`` variable during ``native`` build: Additional linker flags during package (GNU autotools or similar) configuration |
+| SUBDIR | Name of extracted archive or git-{clone,pull}(1)'d directory |
+| TARGET | Dash-separated {build,host,target} triplet |
+| URL | URL to package archive, optionally appended with whitespace-separated list of alternative URLs |
+| URLS_GIT | List of package Git URL(s) (``*name*=*URL*@*branch*``) |
+| VERSION | Package version |
[Back to top](#table-of-contents)