diff options
author | Eugene V. Lyubimkin <jackyf@debian.org> | 2011-01-16 19:36:07 +0200 |
---|---|---|
committer | Daniel Lange <DLange@git.local> | 2016-04-11 13:00:28 +0200 |
commit | 6e8d31964ea33edd470001ee13070e844b269e11 (patch) | |
tree | 48b41783f978b511ccfb25260c83717160c8d63b /plpa-1.3.2/plpa.m4 | |
parent | 6e545da37e2482b15007df28c549afa072a5198d (diff) | |
parent | 283707c5e5bc436b78ea23bf5500cb6b16a01148 (diff) | |
download | debian_htop-6e8d31964ea33edd470001ee13070e844b269e11.tar.gz debian_htop-6e8d31964ea33edd470001ee13070e844b269e11.tar.bz2 debian_htop-6e8d31964ea33edd470001ee13070e844b269e11.zip |
Imported Debian patch 0.9-1debian/0.9-1
Diffstat (limited to 'plpa-1.3.2/plpa.m4')
-rw-r--r-- | plpa-1.3.2/plpa.m4 | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/plpa-1.3.2/plpa.m4 b/plpa-1.3.2/plpa.m4 new file mode 100644 index 0000000..0546c69 --- /dev/null +++ b/plpa-1.3.2/plpa.m4 @@ -0,0 +1,364 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# Main PLPA m4 macro, to be invoked by the user +# +# Expects two or three paramters: +# 1. Configuration prefix (optional; if not specified, "." is assumed) +# 2. What to do upon success +# 3. What to do upon failure +# +AC_DEFUN([PLPA_INIT],[ + # If we used the 2 param variant of PLPA_INIT, then assume the + # config prefix is ".". Otherwise, it's $1. + m4_ifval([$3], + [_PLPA_INIT_COMPAT([$1], [$2], [$3])], + [AC_MSG_WARN([The 2-argument form of the PLPA INIT m4 macro is deprecated]) + AC_MSG_WARN([It was removed starting with PLPA v1.2]) + AC_MSG_ERROR([Cannot continue])]) +])dnl + +#----------------------------------------------------------------------- + +# Do the main work for PLPA_INIT +# +# Expects three paramters: +# 1. Configuration prefix +# 2. What to do upon success +# 3. What to do upon failure +# +AC_DEFUN([_PLPA_INIT_COMPAT],[ + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AM_PROG_LEX]) + AC_REQUIRE([AC_PROG_YACC]) + + m4_define([plpa_config_prefix],[$1]) + + # Check for syscall() + AC_CHECK_FUNC([syscall], [plpa_config_happy=1], [plpa_config_happy=0]) + + # Look for syscall.h + if test "$plpa_config_happy" = 1; then + AC_CHECK_HEADER([sys/syscall.h], [plpa_config_happy=1], [plpa_config_happy=0]) + fi + + # Look for unistd.h + if test "$plpa_config_happy" = 1; then + AC_CHECK_HEADER([unistd.h], [plpa_config_happy=1], [plpa_config_happy=0]) + fi + + # Check for __NR_sched_setaffinity + if test "$plpa_config_happy" = 1; then + AC_MSG_CHECKING([for __NR_sched_setaffinity]) + if test "$plpa_emulate" = "yes"; then + AC_MSG_RESULT([emulated]) + AC_DEFINE([__NR_sched_setaffinity], [0], [Emulated value]) + else + AC_TRY_COMPILE([#include <syscall.h> +#include <unistd.h>], [#ifndef __NR_sched_setaffinity +#error __NR_sched_setaffinity_not found! +#endif +int i = 1;], + [AC_MSG_RESULT([yes]) + plpa_config_happy=1], + [AC_MSG_RESULT([no]) + plpa_config_happy=0]) + fi + fi + + # Check for __NR_sched_getaffinity (probably overkill, but what + # the heck?) + if test "$plpa_config_happy" = 1; then + AC_MSG_CHECKING([for __NR_sched_getaffinity]) + if test "$plpa_emulate" = "yes"; then + AC_MSG_RESULT([emulated]) + AC_DEFINE([__NR_sched_getaffinity], [0], [Emulated value]) + else + AC_TRY_COMPILE([#include <syscall.h> +#include <unistd.h>], [#ifndef __NR_sched_getaffinity +#error __NR_sched_getaffinity_not found! +#endif +int i = 1;], + [AC_MSG_RESULT([yes]) + plpa_config_happy=1], + [AC_MSG_RESULT([no]) + plpa_config_happy=0]) + fi + fi + + # If all was good, do the real init + AS_IF([test "$plpa_config_happy" = "1"], + [_PLPA_INIT($2, $3)], + [$3]) + PLPA_DO_AM_CONDITIONALS + + AC_CONFIG_FILES( + plpa_config_prefix[/Makefile] + plpa_config_prefix[/src/Makefile] + plpa_config_prefix[/src/libplpa/Makefile] + ) + + # Cleanup + unset plpa_config_happy +])dnl + +#----------------------------------------------------------------------- + +# Build PLPA as a standalone package +AC_DEFUN([PLPA_STANDALONE],[ + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + plpa_mode=standalone +])dnl + +#----------------------------------------------------------------------- + +# Build PLPA as an included package +AC_DEFUN([PLPA_INCLUDED],[ + m4_ifval([$1], + [AC_MSG_WARN([The 1-argument form of the PLPA INCLUDED m4 macro is deprecated]) + AC_MSG_WARN([It was removed starting with PLPA v1.2]) + AC_MSG_ERROR([Cannot continue])]) + + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + plpa_mode=included + PLPA_DISABLE_EXECUTABLES +])dnl + +#----------------------------------------------------------------------- + +dnl JMS: No fortran bindings yet +dnl # Set whether the fortran bindings will be built or not +dnl AC_DEFUN([PLPA_FORTRAN],[ +dnl AC_REQUIRE([_PLPA_INTERNAL_SETUP]) +dnl +dnl # Need [] around entire following line to escape m4 properly +dnl [plpa_tmp=`echo $1 | tr '[:upper:]' '[:lower:]'`] +dnl if test "$1" = "0" -o "$1" = "n"; then +dnl plpa_fortran=no +dnl elif test "$1" = "1" -o "$1" = "y"; then +dnl plpa_fortran=yes +dnl else +dnl AC_MSG_WARN([Did not understand PLPA_FORTRAN argument ($1) -- ignored]) +dnl fi +dnl ])dnl + +#----------------------------------------------------------------------- + +# Disable building the executables +AC_DEFUN([PLPA_DISABLE_EXECUTABLES],[ + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + plpa_executables=no +])dnl + +#----------------------------------------------------------------------- + +# Disable building the executables +AC_DEFUN([PLPA_ENABLE_EXECUTABLES],[ + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + plpa_executables=yes +])dnl + +#----------------------------------------------------------------------- + +# Specify the symbol prefix +AC_DEFUN([PLPA_SET_SYMBOL_PREFIX],[ + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + plpa_symbol_prefix_value=$1 +])dnl + +#----------------------------------------------------------------------- + +# Internals +AC_DEFUN([_PLPA_INTERNAL_SETUP],[ + + AC_ARG_ENABLE([emulate], + AC_HELP_STRING([--enable-emulate], + [Emulate __NR_sched_setaffinity and __NR_sched_getaffinity, to allow building on non-Linux systems (for testing)])) + if test "$enable_emulate" = "yes"; then + plpa_emulate=yes + else + plpa_emulate=no + fi + + # Build and install the executables or no? + AC_ARG_ENABLE([executables], + AC_HELP_STRING([--disable-executables], + [Using --disable-executables disables building and installing the PLPA executables])) + if test "$enable_executables" = "yes" -o "$enable_executables" = ""; then + plpa_executables=yes + else + plpa_executables=no + fi + + # Included mode, or standalone? + AC_ARG_ENABLE([included-mode], + AC_HELP_STRING([--enable-included-mode], + [Using --enable-included-mode puts the PLPA into "included" mode. The default is --disable-included-mode, meaning that the PLPA is in "standalone" mode.])) + if test "$enable_included_mode" = "yes"; then + plpa_mode=included + if test "$enable_executables" = ""; then + plpa_executables=no + fi + else + plpa_mode=standalone + fi + +dnl JMS: No fortran bindings yet +dnl # Fortran bindings, or no? +dnl AC_ARG_ENABLE([fortran], +dnl AC_HELP_STRING([--disable-fortran], +dnl [Using --disable-fortran disables building the Fortran PLPA API bindings])) +dnl if test "$enable_fortran" = "yes" -o "$enable_fortran" = ""; then +dnl plpa_fortran=yes +dnl else +dnl plpa_fortran=no +dnl fi + + # Change the symbol prefix? + AC_ARG_WITH([plpa-symbol-prefix], + AC_HELP_STRING([--with-plpa-symbol-prefix=STRING], + [STRING can be any valid C symbol name. It will be prefixed to all public PLPA symbols. Default: "plpa_"])) + if test "$with_plpa_symbol_prefix" = ""; then + plpa_symbol_prefix_value=plpa_ + else + plpa_symbol_prefix_value=$with_plpa_symbol_prefix + fi + + # Debug mode? + AC_ARG_ENABLE([debug], + AC_HELP_STRING([--enable-debug], + [Using --enable-debug enables various maintainer-level debugging controls. This option is not recomended for end users.])) + if test "$enable_debug" = "yes"; then + plpa_debug=1 + plpa_debug_msg="enabled" + elif test "$enable_debug" = "" -a -d .svn; then + plpa_debug=1 + plpa_debug_msg="enabled (SVN checkout default)" + else + plpa_debug=0 + plpa_debug_msg="disabled" + fi +])dnl + +#----------------------------------------------------------------------- + +# Internals for PLPA_INIT +AC_DEFUN([_PLPA_INIT],[ + AC_REQUIRE([_PLPA_INTERNAL_SETUP]) + + # Are we building as standalone or included? + AC_MSG_CHECKING([for PLPA building mode]) + AC_MSG_RESULT([$plpa_mode]) + + # Debug mode? + AC_MSG_CHECKING([if want PLPA maintainer support]) + AC_DEFINE_UNQUOTED(PLPA_DEBUG, [$plpa_debug], [Whether we are in debugging more or not]) + AC_MSG_RESULT([$plpa_debug_msg]) + + # We need to set a path for header, etc files depending on whether + # we're standalone or included. this is taken care of by PLPA_INCLUDED. + + AC_MSG_CHECKING([for PLPA config prefix]) + AC_MSG_RESULT(plpa_config_prefix) + + # Note that plpa_config.h *MUST* be listed first so that it + # becomes the "main" config header file. Any AM_CONFIG_HEADERs + # after that (plpa.h) will only have selective #defines replaced, + # not the entire file. + AM_CONFIG_HEADER(plpa_config_prefix[/src/libplpa/plpa_config.h]) + AM_CONFIG_HEADER(plpa_config_prefix[/src/libplpa/plpa.h]) + + # What prefix are we using? + AC_MSG_CHECKING([for PLPA symbol prefix]) + AC_DEFINE_UNQUOTED(PLPA_SYM_PREFIX, [$plpa_symbol_prefix_value], + [The PLPA symbol prefix]) + # Ensure to [] escape the whole next line so that we can get the + # proper tr tokens + [plpa_symbol_prefix_value_caps="`echo $plpa_symbol_prefix_value | tr '[:lower:]' '[:upper:]'`"] + AC_DEFINE_UNQUOTED(PLPA_SYM_PREFIX_CAPS, [$plpa_symbol_prefix_value_caps], + [The PLPA symbol prefix in all caps]) + AC_MSG_RESULT([$plpa_symbol_prefix_value]) + + # Build with valgrind support if we can find it, unless it was + # explicitly disabled + AC_ARG_WITH([valgrind], + [AC_HELP_STRING([--with-valgrind(=DIR)], + [Directory where the valgrind software is installed])]) + CPPFLAGS_save="$CPPFLAGS" + valgrind_happy=no + AS_IF([test "$with_valgrind" != "no"], + [AS_IF([test ! -z "$with_valgrind" -a "$with_valgrind" != "yes"], + [CPPFLAGS="$CPPFLAGS -I$with_valgrind/include"]) + AC_CHECK_HEADERS([valgrind/valgrind.h], + [AC_MSG_CHECKING([for VALGRIND_CHECK_MEM_IS_ADDRESSABLE]) + AC_LINK_IFELSE(AC_LANG_PROGRAM([[ +#include "valgrind/memcheck.h" +]], + [[char buffer = 0xff; + VALGRIND_CHECK_MEM_IS_ADDRESSABLE(&buffer, sizeof(buffer));]]), + [AC_MSG_RESULT([yes]) + valgrind_happy=yes], + [AC_MSG_RESULT([no]) + AC_MSG_WARN([Need Valgrind version 3.2.0 or later.])], + [AC_MSG_RESULT([cross-compiling; assume yes...?]) + AC_MSG_WARN([PLPA will fail to compile if you do not have Valgrind version 3.2.0 or later]) + valgrind_happy=yes]), + ], + [AC_MSG_WARN([valgrind.h not found])]) + AS_IF([test "$valgrind_happy" = "no" -a "x$with_valgrind" != "x"], + [AC_MSG_WARN([Valgrind support requested but not possible]) + AC_MSG_ERROR([Cannot continue])])]) + AS_IF([test "$valgrind_happy" = "no"], + [CPPFLAGS="$CPPFLAGS_save" + valgrind_define=0], + [valgrind_define=1]) + AC_DEFINE_UNQUOTED([PLPA_WANT_VALGRIND_SUPPORT], [$valgrind_define], + [Whether we want Valgrind support or not]) + +dnl JMS: No fortran bindings yet +dnl # Check for fortran +dnl AC_MSG_CHECKING([whether to build PLPA Fortran API]) +dnl AC_MSG_RESULT([$plpa_fortran]) + + # Check whether to build the exectuables or not + AC_MSG_CHECKING([whether to build PLPA executables]) + AC_MSG_RESULT([$plpa_executables]) + + # If we're building executables, we need some things for plpa-taskset + if test "$plpa_executables" = "yes"; then + AC_C_INLINE + fi + + # Success + $1 +])dnl + + +#----------------------------------------------------------------------- + +# This must be a standalone routine so that it can be called both by +# PLPA_INIT and an external caller (if PLPA_INIT is not invoked). +AC_DEFUN([PLPA_DO_AM_CONDITIONALS],[ + if test "$plpa_did_am_conditionals" != "yes"; then + AM_CONDITIONAL([PLPA_BUILD_STANDALONE], [test "$plpa_mode" = "standalone"]) +dnl JMS: No fortran bindings yet +dnl AM_CONDITIONAL(PLPA_BUILD_FORTRAN, [test "$plpa_fortran" = "yes"]) + AM_CONDITIONAL(PLPA_BUILD_EXECUTABLES, [test "$plpa_executables" = "yes"]) + fi + plpa_did_am_conditionals=yes +])dnl |