X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/a2a4e6a70ec3ed860f4ef0b4da1c2851ae4a988e..b6ec120435a070a28eafe0b3e686ef2ac9b0f042:/m4/base.m4 diff --git a/m4/base.m4 b/m4/base.m4 index fd9b811..4dc0d14 100644 --- a/m4/base.m4 +++ b/m4/base.m4 @@ -1,10 +1,10 @@ -dnl Copyright © 2012, 2014, 2021 Nick Bowler -dnl -dnl Base directory handling for dxcommon. -dnl -dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2. -dnl This is free software: you are free to do what the fuck you want to. -dnl There is NO WARRANTY, to the extent permitted by law. +# Copyright © 2012, 2014, 2021, 2023-2024 Nick Bowler +# +# Basic macros for dxcommon. +# +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# This is free software: you are free to do what the fuck you want to. +# There is NO WARRANTY, to the extent permitted by law. AC_PREREQ([2.64]) @@ -68,11 +68,24 @@ dnl dnl This macro expands to the dxcommon base directory, as a quoted string. AC_DEFUN([DX_BASEDIR], [m4_ignore(DX_INIT())m4_defn([_DX_BASEDIR])]) -dnl DX_RUN_LOG(command) -dnl -dnl Run a command, logging all of the command, its output, and overall -dnl exit status to config.log. The expansion of this macro is a single -dnl complex shell command suitable for use in shell conditionals. -AC_DEFUN([DX_RUN_LOG], [{ (set -x; $1;) >&AS_MESSAGE_LOG_FD 2>&1 - dx_status=$?; AS_ECHO(["\$? = $dx_status"]) >&AS_MESSAGE_LOG_FD 2>&1 - test $dx_status = 0; }]) +# DX_RUN_LOG(command) +# +# Run a command, logging all of the command, its output, and overall +# exit status to config.log. The expansion of this macro is a single +# complex shell command suitable for use in shell conditionals. +AC_DEFUN([DX_RUN_LOG], +[{ _dx_shopt=$- +( set -x +$1 +) >&AS_MESSAGE_LOG_FD 2>&1 +_dx_status=$? +test x"$-" = x"$_dx_shopt" || set +x # work around DJGPP subshell bug +AS_ECHO(["\$? = $_dx_status"]) >&AS_MESSAGE_LOG_FD +test $_dx_status = 0; } 2>/dev/null]) + +# DX_PATCH_MACRO([macro-name], [regexp], [replacement]) +# +# Patches the definition of macro-name by replacing substrings that match +# the given regexp (a la m4_bpatsubst). +AC_DEFUN([DX_PATCH_MACRO], [m4_ifdef([$1], + [m4_define([$1], m4_bpatsubst(m4_dquote(m4_defn([$1])), [$2], [$3]))])])