]> git.lyx.org Git - lyx.git/blob - config/sigc++.m4
merge the code to create a proper X font dir into lib/configure
[lyx.git] / config / sigc++.m4
1 # Configure paths for Libsigc++
2 # Based on Gtk-- script by Erik Andersen and Tero Pulkkinen 
3
4 dnl Test for Libsigc++, and define SIGC_CFLAGS and SIGC_LIBS
5 dnl   to be used as follows:
6 dnl AM_PATH_SIGC(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
7 dnl
8 AC_DEFUN(AM_PATH_SIGC,
9 [dnl 
10 dnl Get the cflags and libraries from the sigc-config script
11 dnl
12
13 dnl
14 dnl Prefix options
15 dnl
16 AC_ARG_WITH(sigc-prefix,
17 [  --with-sigc-prefix=PREFIX
18                           Prefix where libsigc++ is installed (optional)]
19 , sigc_config_prefix="$withval", sigc_config_prefix="")
20
21 AC_ARG_WITH(sigc-exec-prefix,
22 [  --with-sigc-exec-prefix=PREFIX 
23                           Exec prefix where  libsigc++ is installed (optional)]
24 , sigc_config_exec_prefix="$withval", sigc_config_exec_prefix="")
25
26 AC_ARG_ENABLE(sigctest, 
27 [  --disable-sigctest     Do not try to compile and run a test libsigc++ 
28                           program],
29 , enable_sigctest=yes)
30
31 dnl
32 dnl Prefix handling
33 dnl
34   if test x$sigc_config_exec_prefix != x ; then
35      sigc_config_args="$sigc_config_args --exec-prefix=$sigc_config_exec_prefix"
36      if test x${SIGC_CONFIG+set} != xset ; then
37         SIGC_CONFIG=$sigc_config_exec_prefix/bin/sigc-config
38      fi
39   fi
40   if test x$sigc_config_prefix != x ; then
41      sigc_config_args="$sigc_config_args --prefix=$sigc_config_prefix"
42      if test x${SIGC_CONFIG+set} != xset ; then
43         SIGC_CONFIG=$sigc_config_prefix/bin/sigc-config
44      fi
45   fi
46
47 dnl
48 dnl See if sigc-config is alive
49 dnl
50   AC_PATH_PROG(SIGC_CONFIG, sigc-config, no)
51   sigc_version_min=$1
52
53 dnl
54 dnl  Version check
55 dnl
56   AC_MSG_CHECKING(for libsigc++ - version >= $sigc_version_min)
57   no_sigc=""
58   if test "$SIGC_CONFIG" = "no" ; then
59     no_sigc=yes
60   else
61     sigc_version=`$SIGC_CONFIG --version`
62
63     SIGC_CFLAGS=`$SIGC_CONFIG $sigc_config_args --cflags`
64     SIGC_LIBS=`$SIGC_CONFIG $sigc_config_args --libs`
65     SIGC_MACROS=`$SIGC_CONFIG $sigc_config_args --macros`
66
67     sigc_major_version=`echo $sigc_version | \
68            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
69     sigc_minor_version=`echo $sigc_version | \
70            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
71     sigc_micro_version=`echo $sigc_version | \
72            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
73
74     sigc_major_min=`echo $sigc_version_min | \
75            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
76     sigc_minor_min=`echo $sigc_version_min | \
77            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
78     sigc_micro_min=`echo $sigc_version_min | \
79            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
80
81     sigc_version_proper=`expr \
82         $sigc_major_version \> $sigc_major_min \| \
83         $sigc_major_version \= $sigc_major_min \& \
84         $sigc_minor_version \> $sigc_minor_min \| \
85         $sigc_major_version \= $sigc_major_min \& \
86         $sigc_minor_version \= $sigc_minor_min \& \
87         $sigc_micro_version \>= $sigc_micro_min `
88
89     if test "$sigc_version_proper" = "1" ; then
90       AC_MSG_RESULT([$sigc_major_version.$sigc_minor_version.$sigc_micro_version])
91     else
92       AC_MSG_RESULT(no)
93       no_sigc=yes
94     fi
95
96     if test "X$no_sigc" = "Xyes" ; then
97       enable_sigctest=no
98     fi
99
100     AC_LANG_SAVE
101     AC_LANG_CPLUSPLUS
102
103 dnl
104 dnl
105 dnl
106     if test "x$enable_sigctest" = "xyes" ; then
107       AC_MSG_CHECKING(if libsigc++ sane)
108       ac_save_CXXFLAGS="$CXXFLAGS"
109       ac_save_LIBS="$LIBS"
110       CXXFLAGS="$CXXFLAGS $SIGC_CFLAGS"
111       LIBS="$LIBS $SIGC_LIBS"
112
113       rm -f conf.sigctest
114       AC_TRY_RUN([
115 #include <stdio.h>
116 #include <sigc++/signal_system.h>
117
118 #ifdef SIGC_CXX_NAMESPACES
119 using namespace SigC;
120 #endif
121
122 int foo1(int i) 
123   {
124    return 1;
125   }
126
127 int main(int argc,char **argv)
128   {
129    if (sigc_major_version!=$sigc_major_version ||
130        sigc_minor_version!=$sigc_minor_version ||
131        sigc_micro_version!=$sigc_micro_version)
132      { printf("(%d.%d.%d) ",
133          sigc_major_version,sigc_minor_version,sigc_micro_version);
134        return 1;
135      }
136    Signal1<int,int> sig1;
137    sig1.connect(slot(foo1));
138    sig1(1);
139    return 0;
140   }
141
142 ],[
143   AC_MSG_RESULT(yes)
144 ],[
145   AC_MSG_RESULT(no)
146   no_sigc=yes
147 ]
148 ,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
149
150        CXXFLAGS="$ac_save_CXXFLAGS"
151        LIBS="$ac_save_LIBS"
152      fi
153   fi
154
155   dnl
156   dnl
157   if test "x$no_sigc" = x ; then
158      ifelse([$2], , :, [$2])     
159   else
160      SIGC_CFLAGS=""
161      SIGC_LIBS=""
162      SIGC_MACROS=""
163      ifelse([$3], , :, [$3])
164   fi
165
166   AC_LANG_RESTORE
167
168   AC_SUBST(SIGC_CFLAGS)
169   AC_SUBST(SIGC_LIBS)
170   AC_SUBST(SIGC_MACROS)
171 ])
172