Macro: peti_with_dmalloc

Back to the Main Page. | Download the M4 Source.

# peti_with_dmalloc

## Synopsis

`PETI_WITH_DMALLOC`

## Version

1.2 (2001/07/26) Installed_Packages @ ac-archive-0.5.32

## Author

Peter Simons <simons@computer.org>

## Description

The dmalloc library is an useful tool to debug memory problems in your programs, but you don't really want to compile dmalloc-support into every binary you produce, because dmalloc brings performance loss.

The PETI_WITH_DMALLOC macro defines a user switch '--with-dmalloc' which can be used likes this:

`./configure --with-dmalloc[=BASE-PATH]`

If no BASE-PATH has been provided, "/usr/local" will be used as default.

The BASE-PATH is the place where autoconf expects to find the include- and link library files of dmalloc, specifically in:

`$(BASE-PATH)/include`
`$(BASE-PATH)/lib`

If dmalloc-support has been enabled, the pre-processor defines "DEBUG_DMALLOC" and "DMALLOC_FUNC_CHECK" will added to CPPFLAGS as well as the apropriate "-I" statement.

Use the first define in your source codes to determine whether you have dmalloc support enabled or not. Usually something like this will suffice:

`#ifdef DEBUG_DMALLOC`
`# include <dmalloc.h>`
`#endif`

You will find dmalloc at <http://www.dmalloc.com/>.

## M4 Source Code

    AC_DEFUN([PETI_WITH_DMALLOC], [
    AC_MSG_CHECKING(whether to use dmalloc library)
    AC_ARG_WITH(dmalloc,
    [  --with-dmalloc[=ARG]     Compile with dmalloc library],
    if test "$withval" = "" -o "$withval" = "yes"; then
        ac_cv_dmalloc="/usr/local"
    else
        ac_cv_dmalloc="$withval"
    fi
    AC_MSG_RESULT(yes)
    CPPFLAGS="$CPPFLAGS -DDEBUG_DMALLOC -DDMALLOC_FUNC_CHECK -I$ac_cv_dmalloc/include"
    LDFLAGS="$LDFLAGS -L$ac_cv_dmalloc/lib"
    LIBS="$LIBS -ldmalloc"
    ,AC_MSG_RESULT(no))
    ])