Download M4 Source Macro Index Page

ag_check_strcspn

Synopsis

AG_CHECK_STRCSPN

Description

Not all systems have strcspn(3). See if we need to substitute. To make this work, you have to do horrible things. In one of your Makefile.am files, you must make an explicit rule to make this object. It should look like this:

  strcspn.lo : $(top_srcdir)/compat/strcspn.c
      $(LTCOMPILE) -o $@ -c $(top_srcdir)/compat/strcspn.c

and you must include ``@COMPATOBJ@'' in a LIBADD somewhere and, finally, you must add another artificial dependency, something like:

  makeshell.lo : genshell.c @COMPATOBJ@

It is all pretty horrific, but I have found nothing else that works.

Author

Bruce Korb <bkorb@gnu.org>

Last Modified

2001-12-01

M4 Source Code

dnl DO NOT EDIT THIS FILE   (ag_check_strcspn.m4)
dnl
dnl It has been AutoGen-ed  Saturday December  1, 2001 at 09:21:28 PM PST
dnl From the definitions    bkorb.def
dnl and the template file   conftest.tpl
dnl See: http://autogen.sf.net for a description of the AutoGen project

AC_DEFUN([AG_CHECK_STRCSPN],[
  AC_MSG_CHECKING([whether strcspn matches prototype and works])
  AC_CACHE_VAL([ag_cv_strcspn],[
  AC_TRY_RUN([#include <string.h>
int main (int argc, char** argv) {
   char zRej[] = "reject";
   char zAcc[] = "a-ok-eject";
   return strcspn( zAcc, zRej ) - 5;
}],[ag_cv_strcspn=yes],[ag_cv_strcspn=no],[ag_cv_strcspn=no]
  ) # end of TRY_RUN]) # end of CACHE_VAL

  AC_MSG_RESULT([$ag_cv_strcspn])
  if test x$ag_cv_strcspn = xyes
  then
    AC_DEFINE(HAVE_STRCSPN, 1,
       [Define this if strcspn matches prototype and works])
  else
    COMPATOBJ="$COMPATOBJ strcspn.lo"
  fi
]) # end of AC_DEFUN of AG_CHECK_STRCSPN