diff options
| author | kx <kx@radix-linux.su> | 2026-10-09 18:00:15 +0300 |
|---|---|---|
| committer | kx <kx@radix-linux.su> | 2026-10-09 18:00:15 +0300 |
| commit | 065da3509019b15dd0e678072e6be629e5330bef (patch) | |
| tree | 69c934c9e786ac048b4fbe8f4c4c5571661521f4 /libmcpu.m4 | |
| parent | d130fe27fa753be02ed76fd9b277aa3c3d928eb9 (diff) | |
| download | libmcpu-0.4.0.tar.xz | |
Version 0.4.00.4.0
Diffstat (limited to 'libmcpu.m4')
| -rw-r--r-- | libmcpu.m4 | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/libmcpu.m4 b/libmcpu.m4 new file mode 100644 index 0000000..f81a1a6 --- /dev/null +++ b/libmcpu.m4 @@ -0,0 +1,231 @@ +dnl # +dnl # /usr/share/aclocal/libmcpu.m4 +dnl # +dnl # Configure paths for libmcpu +dnl # Andrey V.Kosteltsev + +dnl ============================================================ +dnl +dnl Synopsis: +dnl AC_CHECK_LIBMCPU([MIN-VERSION [, # minimum libmcpu version, e.g. 0.4.0 +dnl DEFAULT-WITH-LIBMCPU [, # default value for --with-libmcpu option +dnl ACTION-IF-FOUND [, # action to perform if libmcpu was found +dnl ACTION-IF-NOT-FOUND # action to perform if libmcpu was not found +dnl ]]]]) +dnl Examples: +dnl AC_CHECK_LIBMCPU(0.4.0) +dnl AC_CHECK_LIBMCPU(0.4.0,,,CFLAGS="$CFLAGS -DHAVE_LIBMCPU $LIBMCPU_CFLAGS") +dnl AC_CHECK_LIBMCPU(0.4.0,yes,CFLAGS="$CFLAGS -DHAVE_LIBMCPU") +dnl +dnl +dnl If you have to change prefix returned by mcpu-config script or change +dnl location of mcpu-config, you may set environment variable LIBMCPU_CONFIG, +dnl for example: +dnl +dnl # export LIBMCPU_CONFIG="/usr/bin/mcpu-config" +dnl +dnl ============================================================ +dnl +dnl ============================================================ +dnl auxilliary macros +dnl ============================================================ +AC_DEFUN([_AC_LIBMCPU_ERROR], [dnl +AC_MSG_RESULT([*FAILED*]) +cat <<EOT | sed -e 's/^[[ ]]*/ | /' -e 's/>>/ /' 1>&2 +$1 +EOT +exit 1 +]) + +AC_DEFUN([_AC_LIBMCPU_VERBOSE], [dnl +if test "x$verbose" = "xyes"; then + AC_MSG_RESULT([ $1]) +fi +]) + +dnl ============================================================ +dnl the user macro +dnl ============================================================ +AC_DEFUN([AC_CHECK_LIBMCPU], [dnl +dnl +dnl ============================================================ +dnl prerequisites +dnl ============================================================ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +dnl +dnl ============================================================ +dnl set LIBMCPU_CONFIG variable +dnl ============================================================ +if test -z "$LIBMCPU_CONFIG"; then + LIBMCPU_CONFIG='mcpu-config' +fi +dnl +LIBMCPU_CPPFLAGS='' +LIBMCPU_CFLAGS='' +LIBMCPU_LDFLAGS='' +LIBMCPU_LIBS='' +AC_SUBST(LIBMCPU_CPPFLAGS) +AC_SUBST(LIBMCPU_CFLAGS) +AC_SUBST(LIBMCPU_LDFLAGS) +AC_SUBST(LIBMCPU_LIBS) +dnl +dnl ============================================================ +dnl command line options +dnl ============================================================ +AC_MSG_CHECKING(for libmcpu) +_AC_LIBMCPU_VERBOSE([]) +AC_ARG_WITH(libmcpu,dnl +[ --with-libmcpu[=yes|no] Build with libmcpu Library (default=]ifelse([$2],,yes,$2)[)],dnl +,dnl +with_libmcpu="ifelse([$2],,yes,$2)" +)dnl +_AC_LIBMCPU_VERBOSE([+ Command Line Options:]) +_AC_LIBMCPU_VERBOSE([ o --with-libmcpu=$with_libmcpu]) +dnl +dnl ============================================================ +dnl configuration +dnl ============================================================ +if test "x$with_libmcpu" != "xno"; then + libmcpu_version="" + libmcpu_location="" + libmcpu_type="" + libmcpu_cppflags="" + libmcpu_cflags="" + libmcpu_ldflags="" + libmcpu_libs="" + if test "x$with_libmcpu" = "xyes"; then + # via config script in $PATH + changequote(, )dnl + libmcpu_version=`($LIBMCPU_CONFIG --version) 2>/dev/null |\ + sed -e 's/^.*\([0-9]\.[0-9]*[ab.][0-9]*\).*$/\1/'` + changequote([, ])dnl + if test "x$libmcpu_version" != "x"; then + libmcpu_location=`$LIBMCPU_CONFIG --prefix` + libmcpu_type='installed' + libmcpu_cppflags=`$LIBMCPU_CONFIG --cppflags` + libmcpu_cflags=`$LIBMCPU_CONFIG --cflags` + libmcpu_ldflags=`$LIBMCPU_CONFIG --ldflags` + libmcpu_libs=`$LIBMCPU_CONFIG --libs` + fi + fi + dnl ======================================================== + dnl Check whether the found version is sufficiently new + dnl ======================================================== + _req_version="ifelse([$1],,1.0.0,$1)" + for _var in libmcpu_version _req_version; do + eval "_val=\"\$${_var}\"" + _major=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\1/'` + _minor=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\2/'` + _rtype=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\3/'` + _micro=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\4/'` + case $_rtype in + "a" ) _rtype=0 ;; + "b" ) _rtype=1 ;; + "." ) _rtype=2 ;; + esac + _hex=`echo dummy | awk '{ printf("%d%02d%1d%02d", major, minor, rtype, micro); }' \ + "major=$_major" "minor=$_minor" "rtype=$_rtype" "micro=$_micro"` + eval "${_var}_hex=\"\$_hex\"" + done + _AC_LIBMCPU_VERBOSE([+ Determined Versions:]) + _AC_LIBMCPU_VERBOSE([ o existing: $libmcpu_version -> 0x$libmcpu_version_hex]) + _AC_LIBMCPU_VERBOSE([ o required: $_req_version -> 0x$_req_version_hex]) + _ok=0 + if test "x$libmcpu_version_hex" != "x"; then + if test "x$_req_version_hex" != "x"; then + if test $libmcpu_version_hex -ge $_req_version_hex; then + _ok=1 + fi + fi + fi + if test "x$_ok" = "x0"; then + _AC_LIBMCPU_ERROR([dnl + Found libmcpu version $libmcpu_version, but required at least version $_req_version. + Upgrade libmcpu under $libmcpu_location to $_req_version or higher first, please.]) + fi + dnl ======================================================== + dnl Perform libmcpu Sanity Compile Check + dnl ======================================================== + _ac_save_CPPFLAGS="$CPPFLAGS" + _ac_save_CFLAGS="$CFLAGS" + _ac_save_LDFLAGS="$LDFLAGS" + _ac_save_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $libmcpu_cppflags" + CFLAGS="$CFLAGS $libmcpu_cflags" + LDFLAGS="$LDFLAGS $libmcpu_ldflags" + LIBS="$LIBS $libmcpu_libs" + _AC_LIBMCPU_VERBOSE([+ Test Build Environment:]) + _AC_LIBMCPU_VERBOSE([ o CPPFLAGS="$CPPFLAGS"]) + _AC_LIBMCPU_VERBOSE([ o CFLAGS="$CFLAGS"]) + _AC_LIBMCPU_VERBOSE([ o LDFLAGS="$LDFLAGS"]) + _AC_LIBMCPU_VERBOSE([ o LIBS="$LIBS"]) + cross_compile=no + _AC_LIBMCPU_VERBOSE([+ Performing Sanity Checks:]) + _AC_LIBMCPU_VERBOSE([ o pre-processor test]) + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ +#include <libmcpu.h> + ]])], _ok=yes, _ok=no) + if test "x$_ok" != "xyes"; then + _AC_LIBMCPU_ERROR([dnl + Found libmcpu $libmcpu_version under $libmcpu_location, but + was unable to perform a sanity pre-processor check. This means + the libmcpu header libmcpu.h was not found. + We used the following build environment: + >> CPP="$CPP" + >> CPPFLAGS="$CPPFLAGS" + See config.log for possibly more details.]) + fi + _AC_LIBMCPU_VERBOSE([ o link check]) + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include <libmcpu.h> + +int main() +{ + __cpu_init(); + + __cpu_free_context(); + + return( 0 ); +} + ]])], _ok=yes, _ok=no) + if test "x$_ok" != "xyes"; then + _AC_LIBMCPU_ERROR([dnl + Found libmcpu $libmcpu_version under $libmcpu_location, but + was unable to perform a sanity linker check. This means + the libmcpu library libmcpu.a was not found. + We used the following build environment: + >> CC="$CC" + >> CFLAGS="$CFLAGS" + >> LDFLAGS="$LDFLAGS" + >> LIBS="$LIBS" + See config.log for possibly more details.]) + fi + CPPFLAGS="$_ac_save_CPPFLAGS" + CFLAGS="$_ac_save_CFLAGS" + LDFLAGS="$_ac_save_LDFLAGS" + LIBS="$_ac_save_LIBS" + + LIBMCPU_CPPFLAGS="$libmcpu_cppflags" + LIBMCPU_CFLAGS="$libmcpu_cflags" + LIBMCPU_LDFLAGS="$libmcpu_ldflags" + LIBMCPU_LIBS="$libmcpu_libs" + AC_SUBST(LIBMCPU_CPPFLAGS) + AC_SUBST(LIBMCPU_CFLAGS) + AC_SUBST(LIBMCPU_LDFLAGS) + AC_SUBST(LIBMCPU_LIBS) + _AC_LIBMCPU_VERBOSE([+ Final Results:]) + _AC_LIBMCPU_VERBOSE([ o LIBMCPU_CPPFLAGS="$LIBMCPU_CPPFLAGS"]) + _AC_LIBMCPU_VERBOSE([ o LIBMCPU_CFLAGS="$LIBMCPU_CFLAGS"]) + _AC_LIBMCPU_VERBOSE([ o LIBMCPU_LDFLAGS="$LIBMCPU_LDFLAGS"]) + _AC_LIBMCPU_VERBOSE([ o LIBMCPU_LIBS="$LIBMCPU_LIBS"]) +fi +if test "x$with_libmcpu" != "xno"; then + AC_MSG_RESULT([version $libmcpu_version, $libmcpu_type under $libmcpu_location]) + ifelse([$3], , :, [$3]) +else + AC_MSG_RESULT([no]) + ifelse([$4], , :, [$4]) +fi +]) + |
