chiark / gitweb /
Back-link to index
[disorder] / acinclude.m4
1 # This file is part of DisOrder.
2 # Copyright (C) 2004, 2005, 2007, 2008 Richard Kettlewell
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 #
17
18 AC_DEFUN([RJK_FIND_GC_H],[
19   AC_CACHE_CHECK([looking for <gc.h>],[rjk_cv_gc_h],[
20     AC_PREPROC_IFELSE([
21                        #include <gc.h>
22                       ],
23                       [rjk_cv_gc_h="on default include path"],[
24       oldCPPFLAGS="${CPPFLAGS}"
25       for dir in /usr/include/gc /usr/local/include/gc; do
26         if test "x$GCC" = xyes; then
27           CPPFLAGS="${oldCPPFLAGS} -isystem $dir"
28         else
29           CPPFLAGS="${oldCPPFLAGS} -I$dir"
30         fi
31         AC_PREPROC_IFELSE([
32                            #include <gc.h>
33                           ],
34                           [rjk_cv_gc_h=$dir;break],[rjk_cv_gc_h="not found"])
35       done
36       CPPFLAGS="${oldCPPFLAGS}"
37    ])
38   ])
39   case "$rjk_cv_gc_h" in
40   "not found" )
41     missing_headers="$missing_headers gc.h"
42     ;;
43   /* )
44     if test "x$GCC" = xyes; then
45       CPPFLAGS="${CPPFLAGS} -isystem $rjk_cv_gc_h"
46     else
47       CPPFLAGS="${CPPFLAGS} -I$rjk_cv_gc_h"
48     fi
49     ;;
50   esac
51 ])
52
53 AC_DEFUN([RJK_CHECK_LIB],[
54   AC_CACHE_CHECK([for $2 in -l$1],[rjk_cv_lib_$1_$2],[
55     save_LIBS="$LIBS"
56     LIBS="${LIBS} -l$1"
57     AC_LINK_IFELSE([AC_LANG_PROGRAM([$3],[$2;])],
58                    [rjk_cv_lib_$1_$2=yes],
59                    [rjk_cv_lib_$1_$2=no])
60     LIBS="$save_LIBS"
61   ])
62   if test $rjk_cv_lib_$1_$2 = yes; then
63     $4
64   else
65     $5
66   fi
67 ])
68
69 AC_DEFUN([RJK_REQUIRE_PCRE_UTF8],[
70   AC_CACHE_CHECK([whether libpcre was built with UTF-8 support],
71                  [rjk_cv_pcre_utf8],[
72     save_LIBS="$LIBS"
73     LIBS="$LIBS $1"
74     AC_RUN_IFELSE([AC_LANG_PROGRAM([
75                     #include <pcre.h>
76                     #include <stdio.h>
77                   ],
78                   [
79                     pcre *r;
80                     const char *errptr;
81                     int erroffset;
82
83                     r = pcre_compile("\x80\x80", PCRE_UTF8,
84                                      &errptr, &erroffset, 0);
85                     if(!r) {
86                       fprintf(stderr, "pcre_compile: %s at %d",
87                               errptr, erroffset);
88                       exit(0);
89                     } else {
90                       fprintf(stderr, "accepted bogus UTF-8 string\n");
91                       exit(1);
92                     }
93                   ])],
94                   [rjk_cv_pcre_utf8=yes],
95                   [rjk_cv_pcre_utf8=no],
96                   [AC_MSG_WARN([cross-compiling, cannot check libpcre behaviour])])
97     LIBS="$save_LIBS"
98   ])
99   if test $rjk_cv_pcre_utf8 = no; then
100     AC_MSG_ERROR([please rebuild your pcre library with --enable-utf8])
101   fi
102 ])
103
104 AC_DEFUN([RJK_GCOV],[
105   GCOV=${GCOV:-true}
106   AC_ARG_WITH([gcov],
107               [AS_HELP_STRING([--with-gcov],
108                               [Enable coverage testing])],
109               [if test $withval = yes; then
110                  CFLAGS="${CFLAGS} -O0 -fprofile-arcs -ftest-coverage"
111                  GCOV=`echo $CC | sed s'/gcc/gcov/;s/ .*$//'`;
112                fi])
113   AC_SUBST([GCOV],[$GCOV])
114 ])