From b9a71579b82cd54980ff641af504bc8ad96473b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz?= Date: Wed, 12 May 2021 22:10:38 +0100 Subject: 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. --- midipix.env | 96 ++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 33 deletions(-) (limited to 'midipix.env') diff --git a/midipix.env b/midipix.env index 51f3d40c..f883cfa9 100644 --- a/midipix.env +++ b/midipix.env @@ -3,11 +3,12 @@ # characters in any of the variables below save for MAKEFLAGS, # PATH, and TIMESTAMP_FMT. # -# $PREFIX_{CROSS,NATIVE} and $WORKDIR must be immediately -# beneath $PREFIX. $PREFIX must be o+rwx. The variables mentioned -# should not be forward slash-terminated. +# ${PREFIX_{CROSS,MINGW32,MINIPIX,NATIVE,RPM}} and ${BUILD_WORKDIR} +# must be immediately beneath ${PREFIX}. ${PREFIX} must be o+rwx. +# The variables mentioned should not be forward slash-terminated. # +# # Build {step,variable}s DEFAULT_BUILD_STEPS=" \ fetch_clean fetch_download fetch_extract \ @@ -17,24 +18,24 @@ DEFAULT_BUILD_STEPS=" \ clean \ finish"; DEFAULT_BUILD_VARS=" \ - AR BASE_DIR BUILD_DIR BUILD_STEPS_DISABLE BUILD_TYPE \ - CC CFLAGS_BUILD CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE \ - CFLAGS_CONFIGURE_EXTRA CONFIG_CACHE CONFIG_CACHE_EXTRA \ + AR BASE_DIR BUILD_DIR BUILD_STEPS_DISABLE BUILD_TYPE CC CFLAGS_BUILD \ + CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA CMAKE \ + CMAKE_ARGS CMAKE_ARGS_EXTRA CMAKE_LISTFILE CONFIG_CACHE CONFIG_CACHE_EXTRA \ CONFIG_CACHE_LOCAL CONFIGURE CONFIGURE_ARGS CONFIGURE_ARGS_EXTRA \ - CXX CXXFLAGS_CONFIGURE CXXFLAGS_CONFIGURE_EXTRA \ - DEPENDS DESTDIR DESTDIR_HOST DISABLED ENV_VARS_EXTRA \ - FNAME FORCE_AUTORECONF GITROOT INHERIT_FROM INSTALL_FILES \ - INSTALL_FILES_DESTDIR INSTALL_FILES_DESTDIR_EXTRA INSTALL_TARGET \ - INSTALL_TARGET_EXTRA IN_TREE LDFLAGS_BUILD_EXTRA LDFLAGS_CONFIGURE \ - LDFLAGS_CONFIGURE_EXTRA LIBTOOL MAKE MAKE_INSTALL_VNAME \ - MAKE_SUBDIRS MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA \ - MAKEFLAGS_INSTALL MAKEFLAGS_INSTALL_EXTRA MAKEFLAGS_VERBOSITY \ - MIRRORS MIRRORS_GIT SOFORT_FORCE SOFORT_NATIVE_CC SOFORT_NATIVE_CFLAGS \ - SOFORT_NATIVE_CFLAGS_EXTRA SOFORT_NATIVE_CXX SOFORT_NATIVE_CXXFLAGS \ - SOFORT_NATIVE_CXXFLAGS_EXTRA SOFORT_NATIVE_LD SOFORT_NATIVE_LDFLAGS \ - SOFORT_NATIVE_LDFLAGS_EXTRA NO_CLEAN NO_CLEAN_BASE_DIR NO_LOG_VARS \ - PYTHON PATCHES_EXTRA PKG_CONFIG PKG_CONFIG_LIBDIR PKGLIST_DISABLE PREFIX \ - RANLIB RPM_DISABLE SHA256SUM SUBDIR TARGET URL URLS_GIT VERSION"; + CONFIGURE_TYPE CXX CXXFLAGS_CONFIGURE CXXFLAGS_CONFIGURE_EXTRA DEPENDS \ + DESTDIR DESTDIR_HOST DISABLED ENV_VARS_EXTRA FNAME FORCE_AUTORECONF \ + GITROOT INHERIT_FROM INSTALL_FILES INSTALL_FILES_DESTDIR \ + INSTALL_FILES_DESTDIR_EXTRA INSTALL_TARGET INSTALL_TARGET_EXTRA \ + IN_TREE LDFLAGS_BUILD_EXTRA LDFLAGS_CONFIGURE LDFLAGS_CONFIGURE_EXTRA \ + LIBTOOL MAKE MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA MAKEFLAGS_INSTALL \ + MAKEFLAGS_INSTALL_EXTRA MAKEFLAGS_VERBOSITY MAKE_INSTALL_VNAME \ + MAKE_SUBDIRS MIRRORS MIRRORS_GIT NO_CLEAN NO_CLEAN_BASE_DIR NO_LOG_VARS \ + PATCHES_EXTRA PKG_CONFIG PKG_CONFIG_LIBDIR PKGLIST_DISABLE PREFIX \ + PYTHON RANLIB RPM_DISABLE SHA256SUM SOFORT_NATIVE_CC \ + SOFORT_NATIVE_CFLAGS SOFORT_NATIVE_CFLAGS_EXTRA SOFORT_NATIVE_CXX \ + SOFORT_NATIVE_CXXFLAGS SOFORT_NATIVE_CXXFLAGS_EXTRA SOFORT_NATIVE_LD \ + SOFORT_NATIVE_LDFLAGS SOFORT_NATIVE_LDFLAGS_EXTRA SUBDIR TARGET URL \ + URLS_GIT VERSION"; # # Prerequisite commands @@ -45,7 +46,8 @@ DEFAULT_PREREQS=" \ pgrep pkill printf readlink rm sed sha256sum sort \ stat tail tar test touch tr uniq wget xz zip"; -# Path names +# +# Path & variable names and URLs : ${PREFIX_ROOT:="${HOME}/midipix"}; : ${PREFIX:="${PREFIX_ROOT}/${ARCH}/${BUILD_KIND}"}; : ${PREFIX_CROSS:="${PREFIX}/${DEFAULT_TARGET}"}; @@ -88,7 +90,8 @@ https://midipix.lucioillanes.de/archives/ \ https://midipix.lucioillanes.de/repos_git/ \ "}; -# Default flags & variables +# +# Default toolchain flags & variables : ${DEFAULT_BUILD_CPUS:=}; : ${DEFAULT_BUILD_TYPE:=native}; : ${DEFAULT_CFLAGS_DEBUG:="-D_REDIR_TIME64=0 -g2 -O0"}; @@ -132,25 +135,18 @@ https://midipix.lucioillanes.de/repos_git/ \ : ${DEFAULT_LDFLAGS_HOST:=$(rtl_get_var_unsafe "DEFAULT_LDFLAGS_$(rtl_toupper "${BUILD_KIND}")_HOST")}; : ${DEFAULT_LDFLAGS_RUNTIME:=$(rtl_get_var_unsafe "DEFAULT_LDFLAGS_$(rtl_toupper "${BUILD_KIND}")_RUNTIME")}; -: ${DEFAULT_GITROOT:=git://midipix.org}; -: ${DEFAULT_GITROOT_HEAD:=git://midipix.org}; -: ${DEFAULT_MAKE_INSTALL_VNAME:=DESTDIR}; -: ${DEFAULT_MAKEFLAGS_BUILD:=-j${DEFAULT_BUILD_CPUS}}; -: ${DEFAULT_MAKEFLAGS_VERBOSITY:="V=99 VERBOSE=1"}; -: ${DEFAULT_GIT_ARGS:=""}; -: ${DEFAULT_TIMESTAMP_FMT:="%Y/%m/%d %H:%M:%S"}; -: ${DEFAULT_WGET_ARGS:="--no-check-certificate --timeout=25 --waitretry=16"}; -: ${DEFAULT_ZIPDIST_DEFROOT:="/dev/fs/c/midipix"}; - -# Target-relative defaults +# +# Target-relative toolchain defaults : ${DEFAULT_CROSS_AR:=${DEFAULT_TARGET}-ar}; : ${DEFAULT_CROSS_CC:=${DEFAULT_TARGET}-gcc}; +: ${DEFAULT_CROSS_CMAKE:=cmake}; : ${DEFAULT_CROSS_CXX:=${DEFAULT_TARGET}-g++}; : ${DEFAULT_CROSS_LIBTOOL:=slibtool}; : ${DEFAULT_CROSS_MAKE:=make}; : ${DEFAULT_CROSS_RANLIB:=${DEFAULT_TARGET}-ranlib}; : ${DEFAULT_HOST_AR:=ar}; : ${DEFAULT_HOST_CC:=gcc}; +: ${DEFAULT_HOST_CMAKE:=cmake}; : ${DEFAULT_HOST_CXX:=g++}; : ${DEFAULT_HOST_LIBTOOL:=slibtool}; : ${DEFAULT_HOST_MAKE:=make}; @@ -159,6 +155,7 @@ https://midipix.lucioillanes.de/repos_git/ \ : ${DEFAULT_HOST_RANLIB:=ranlib}; : ${DEFAULT_NATIVE_AR:=${DEFAULT_TARGET}-ar}; : ${DEFAULT_NATIVE_CC:=${DEFAULT_TARGET}-gcc}; +: ${DEFAULT_NATIVE_CMAKE:=cmake}; : ${DEFAULT_NATIVE_CXX:=${DEFAULT_TARGET}-g++}; : ${DEFAULT_NATIVE_LIBTOOL:=slibtool}; : ${DEFAULT_NATIVE_MAKE:=make}; @@ -166,6 +163,38 @@ https://midipix.lucioillanes.de/repos_git/ \ : ${DEFAULT_NATIVE_PKG_CONFIG_LIBDIR:=${PREFIX}/lib/pkgconfig}; : ${DEFAULT_NATIVE_RANLIB:=${DEFAULT_TARGET}-ranlib}; +# +# Default command & tool flags & variables +: ${DEFAULT_CMAKE_LISTFILE:="CMakeLists.txt"}; +: ${DEFAULT_GITROOT:=git://midipix.org}; +: ${DEFAULT_GITROOT_HEAD:=git://midipix.org}; +: ${DEFAULT_MAKE_INSTALL_VNAME:=DESTDIR}; +: ${DEFAULT_MAKEFLAGS_BUILD:=-j${DEFAULT_BUILD_CPUS}}; +: ${DEFAULT_MAKEFLAGS_VERBOSITY:="V=99 VERBOSE=1"}; +: ${DEFAULT_GIT_ARGS:=""}; +: ${DEFAULT_TIMESTAMP_FMT:="%Y/%m/%d %H:%M:%S"}; +: ${DEFAULT_WGET_ARGS:="--no-check-certificate --timeout=25 --waitretry=16"}; +: ${DEFAULT_ZIPDIST_DEFROOT:="/dev/fs/c/midipix"}; + +# +# Default CMake flags & variables +: ${DEFAULT_CMAKE_ARGS:=" + -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY + -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY + -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER + -DCMAKE_INSTALL_PREFIX= + -DCMAKE_VERBOSE_MAKEFILE=YES"}; + +# +# Default sofort flags & variables +: ${DEFAULT_SOFORT_NATIVE_CC:="${DEFAULT_HOST_CC}"}; +: ${DEFAULT_SOFORT_NATIVE_CFLAGS:="-I${PREFIX}/include"}; +: ${DEFAULT_SOFORT_NATIVE_CXX:="${DEFAULT_HOST_CXX}"}; +: ${DEFAULT_SOFORT_NATIVE_CXXFLAGS:="-I${PREFIX}/include"}; +: ${DEFAULT_SOFORT_NATIVE_LD:="${DEFAULT_HOST_CC}"}; +: ${DEFAULT_SOFORT_NATIVE_LDFLAGS:="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib"}; + +# # Build {log,status} & tarball names : ${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME:=${BUILD_WORKDIR}/last_failed_pkg}; : ${DEFAULT_BUILD_LOG_FNAME:=${PREFIX}/build.log}; @@ -173,6 +202,7 @@ https://midipix.lucioillanes.de/repos_git/ \ : ${DEFAULT_BUILD_STATUS_IN_PROGRESS_FNAME:=${PREFIX}/BUILD_IN_PROGRESS}; : ${DEFAULT_ZIPDIST_FNAME_PREFIX:=midipix-${ARCH}-${BUILD_KIND}.}; +# # GNU autotools cache : ${DEFAULT_CONFIG_CACHE:=" ac_cv_buggy_getaddrinfo=no -- cgit v1.2.3