From 38a7e34b50e2e38881a1a78bb1a350c19218a56b Mon Sep 17 00:00:00 2001 From: midipix Date: Jan 24 2020 21:14:09 +0000 Subject: project: added custom config step, logic to detect automake's version & year. --- diff --git a/config.project b/config.project index cfb520e..63adb57 100644 --- a/config.project +++ b/config.project @@ -12,7 +12,7 @@ mb_disable_static=yes mb_disable_shared=yes # custom config step -mb_use_custom_cfgdefs=no +mb_use_custom_cfgdefs=yes mb_use_custom_cfgtest=no # pkgconfig diff --git a/project/config/cfgdefs.in b/project/config/cfgdefs.in new file mode 100644 index 0000000..789a8a7 --- /dev/null +++ b/project/config/cfgdefs.in @@ -0,0 +1,6 @@ +# variant +AUTOMAKE_VER = @automake_ver@ +AUTOMAKE_YEAR = @automake_year@ +AUTOMAKE_MAJOR = @automake_major@ +AUTOMAKE_MINOR = @automake_minor@ +AUTOMAKE_MICRO = @automake_micro@ diff --git a/project/config/cfgdefs.sh b/project/config/cfgdefs.sh new file mode 100644 index 0000000..ed1d3a0 --- /dev/null +++ b/project/config/cfgdefs.sh @@ -0,0 +1,65 @@ +# in projects where [ $mb_use_custom_cfgdefs = yes ], +# cfgdefs.sh is invoked from within ./configure via +# . $mb_project_dir/project/cfgdefs.sh + +# this file is covered by COPYING.BAUTOMAKE. + +# a successful return from cfgdefs.sh will be followed +# by a second invocation of the config_copy() function, +# reflecting any changes to common config variables +# made by cfgdefs.sh. + +# finally, cfgdefs.sh may update the contents of the +# config-time generated cfgdefs.mk. + + +for arg ; do + case "$arg" in + *) + error_msg ${arg#}: "unsupported config argument." + exit 2 + esac +done + + +cfgdefs_detect_automake_version() +{ + automake_ver=$(grep 'VERSION' "$mb_source_dir/doc/version.texi") + automake_ver=${automake_ver##* } + + automake_year=$(grep 'UPDATED-MONTH' "$mb_source_dir/doc/version.texi") + automake_year=${automake_year##* } + + automake_major=$(printf '%s' "$automake_ver" | cut -d'.' -f1) + automake_minor=$(printf '%s' "$automake_ver" | cut -d'.' -f2) + automake_micro=$(printf '%s' "$automake_ver" | cut -d'.' -f3) + + if [ -z "$automake_major" ] || [ -z "$automake_minor" ]; then + error_msg "Could not properly parse automake's version.texi" + exit 2 + fi +} + + +cfgdefs_output_custom_defs() +{ + sed \ + -e 's/@automake_ver@/'"$automake_ver"'/g' \ + -e 's/@automake_year@/'"$automake_year"'/g' \ + -e 's/@automake_major@/'"$automake_major"'/g' \ + -e 's/@automake_minor@/'"$automake_minor"'/g' \ + -e 's/@automake_micro@/'"$automake_micro"'/g' \ + "$mb_project_dir/project/config/cfgdefs.in" \ + | sed -e 's/[ \t]*$//g' \ + >> "$mb_pwd/cfgdefs.mk" +} + + +# automake version info +cfgdefs_detect_automake_version + +# cfgdefs.in --> cfgdefs.mk +cfgdefs_output_custom_defs + +# all done +return 0 diff --git a/project/config/cfgdefs.usage b/project/config/cfgdefs.usage new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/project/config/cfgdefs.usage