summaryrefslogtreecommitdiff
path: root/dviware/mdvi/config/libopts.m4
blob: 08fbc225ab6b3a7a5f9636197d99e80e466f3a8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
dnl Requires the `AC_ARG_WITHX' macros from with.m4
dnl
dnl AC_CHECK_LIBOPTIONS(SHORTNAME, NAME, HEADERS, FUNCTION)
dnl SHORTNAME=name used for sh variables and such
dnl NAME="official" name of the library, used for -l
dnl
AC_DEFUN(AC_CHECK_LIBOPTIONS, [
  define([LIB], translit($1,[a-z-],[A-Z_]))
  define([NAME], translit($1,[A-Z],[a-z]))
AC_ARG_WITHX(NAME[-headers], [location of the $1 headers],
  [case "$withval" in
    yes) AC_MSG_WARN([no value specified for [--with-]NAME[-headers]] ;;
    no)  NAME[_headers]= ;;
    *)   NAME[_headers]=$withval ;;
  esac], ,[=DIR])
AC_ARG_WITHX(NAME[-library], [location of the $1 library],
  [case "$withval" in
    yes) AC_MSG_WARN([no value specified for [--with-]NAME[-library]] ;;
    no)  NAME[_library]= ;;
    *)   NAME[_library]=$withval ;;
  esac], ,[=DIR])
  AC_SUBST(LIB[_CFLAGS])
  AC_SUBST(LIB[_LDFLAGS])
  AC_SUBST(LIB[_LIBS])
  LIB[_CFLAGS]=
  LIB[_LDFLAGS]=
  [have_]NAME[_headers]=no
  [have_]NAME[_library]=no
[#] Check for $2 headers
  AC_MSG_CHECKING([for $2 headers])
  OCF=$CFLAGS;
  TMPCFLAGS=
  [#] If we were given PATH/lib, try PATH/include
  if test -z "[$]NAME[_headers]"; then
    test -n "[$]NAME[_library]" && NAME[_headers]=[$]NAME[_library]/../include
  fi
  test -n "[$]NAME[_headers]" && TMPCFLAGS="-I[$]NAME[_headers]"
  CFLAGS="$OCF $TMPCFLAGS"
  AC_TRY_COMPILE([$3], [$4],
    [[have_]NAME[_headers]=yes; LIB[_CFLAGS]=$TMPCFLAGS],
    [if test -n "[$]NAME[_headers]"; then
      TMPCFLAGS="-I[$]NAME[_headers]/.."
      CFLAGS="$OCF $TMPCFLAGS"
      AC_TRY_COMPILE([$3], [$4],
        [[have_]NAME[_headers]=yes; LIB[_CFLAGS]=$TMPCFLAGS],
        [[have_]NAME[_headers]=no; LIB[_CFLAGS]=])
    fi])
  AC_MSG_RESULT([$have_]NAME[_headers])
[#] Check for the $2 library
  AC_MSG_CHECKING([for the $2 library])
  OLD=$LDFLAGS; OLI=$LIBS
  TMPLDFLAGS=
  [#] If we were given PATH/include, try PATH/lib
  if test -z "[$]NAME[_library]"; then
    test -n "[$]NAME[_headers]" && NAME[_library]=[$]NAME[_headers]/../lib
  fi
  test -n "[$]NAME[_library]" && TMPLDFLAGS="-L[$]NAME[_library]"
  LDFLAGS="$OLD $TMPLDFLAGS"
  LIBS="$LIBS -l$2"
  AC_TRY_LINK([$3], [$4],
    [[have_]NAME[_library]=yes; LIB[_LDFLAGS]=$TMPLDFLAGS],
    [[have_]NAME[_library]=no; LIB[_LDFLAGS]=])
  AC_MSG_RESULT([$have_]NAME[_library])
  if test "[$have_]NAME[_headers]" = yes -a "[$have_]NAME[_library]" = yes; then
    LIB[_LIBS]="-l$2"
  fi
undefine([LIB])
  TMPCFLAGS=
  TMPLDFLAGS=
[#] Restore things
  CFLAGS=$OCF
  LDFLAGS=$OLD
  LIBS=$OLI
])
AC_DEFUN(AC_SAVE_FLAGS, [
ac_mdvi_CFLAGS="$CFLAGS"
ac_mdvi_LDFLAGS="$LDFLAGS"
ac_mdvi_LIBS="$LIBS"
])
AC_DEFUN(AC_RESTORE_FLAGS, [
CFLAGS="$ac_mdvi_CFLAGS"
LDFLAGS="$ac_mdvi_LDFLAGS"
LIBS="$ac_mdvi_LIBS"
])
AC_DEFUN(AC_CHANGE_FLAGS, [
AC_SAVE_FLAGS
ifelse([$1], , ,CFLAGS="$CFLAGS $1")
ifelse([$2], , ,LDFLAGS="$LDFLAGS $2")
ifelse([$3], , ,LIBS="$3 $LIBS")
])