]> arthur.barton.de Git - netatalk.git/blob - distrib/m4/netatalk.m4
09c8bbc3e4f5b72069aff030b2ba89b79857f38d
[netatalk.git] / distrib / m4 / netatalk.m4
1 # Configure paths for netatalk
2 # Based on libsigc++ script by Karl Nelson
3 # Modified by jeff b (jeff@univrel.pr.uconn.edu)
4
5 dnl Test for netatalk, and define NETATALK_CFLAGS and NETATALK_LIBS
6 dnl   to be used as follows:
7 dnl AM_PATH_NETATALK(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
8 dnl
9 AC_DEFUN(AM_PATH_NETATALK,
10 [dnl 
11 dnl Get the cflags and libraries from the netatalk-config script
12 dnl
13
14 dnl
15 dnl Prefix options
16 dnl
17 AC_ARG_WITH(netatalk-prefix,
18 [  --with-netatalk-prefix=PREFIX
19                           Prefix where netatalk is installed (optional)]
20 , netatalk_config_prefix="$withval", netatalk_config_prefix="")
21
22 AC_ARG_WITH(netatalk-exec-prefix,
23 [  --with-netatalk-exec-prefix=PREFIX 
24                           Exec prefix where netatalk is installed (optional)]
25 , netatalk_config_exec_prefix="$withval", netatalk_config_exec_prefix="")
26
27 AC_ARG_ENABLE(netatalktest, 
28 [  --disable-netatalktest     Do not try to compile and run a test netatalk 
29                           program],
30 , enable_netatalktest=yes)
31
32 dnl
33 dnl Prefix handling
34 dnl
35   if test x$netatalk_config_exec_prefix != x ; then
36      netatalk_config_args="$netatalk_config_args --exec-prefix=$netatalk_config_exec_prefix"
37      if test x${NETATALK_CONFIG+set} != xset ; then
38         NETATALK_CONFIG=$netatalk_config_exec_prefix/bin/netatalk-config
39      fi
40   fi
41   if test x$netatalk_config_prefix != x ; then
42      netatalk_config_args="$netatalk_config_args --prefix=$netatalk_config_prefix"
43      if test x${NETATALK_CONFIG+set} != xset ; then
44         NETATALK_CONFIG=$netatalk_config_prefix/bin/netatalk-config
45      fi
46   fi
47
48 dnl
49 dnl See if netatalk-config is alive
50 dnl
51   AC_PATH_PROG(NETATALK_CONFIG, netatalk-config, no)
52   netatalk_version_min=$1
53
54 dnl
55 dnl  Version check
56 dnl
57   AC_MSG_CHECKING(for netatalk - version >= $netatalk_version_min)
58   no_netatalk=""
59   if test "$NETATALK_CONFIG" = "no" ; then
60     no_netatalk=yes
61   else
62     netatalk_version=`$NETATALK_CONFIG --version`
63
64     NETATALK_CFLAGS=`$NETATALK_CONFIG $netatalk_config_args --cflags`
65     NETATALK_LIBS=`$NETATALK_CONFIG $netatalk_config_args --libs`
66
67     netatalk_major_version=`echo $netatalk_version | \
68            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
69     netatalk_minor_version=`echo $netatalk_version | \
70            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
71     netatalk_micro_version=`echo $netatalk_version | \
72            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
73
74     netatalk_major_min=`echo $netatalk_major_version | \
75            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
76     netatalk_minor_min=`echo $netatalk_minor_version | \
77            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
78     netatalk_micro_min=`echo $netatalk_micro_version | \
79            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
80
81     netatalk_version_proper=`expr \
82         $netatalk_major_version \> $netatalk_major_min \| \
83         $netatalk_major_version \= $netatalk_major_min \& \
84         $netatalk_minor_version \> $netatalk_minor_min \| \
85         $netatalk_major_version \= $netatalk_major_min \& \
86         $netatalk_minor_version \= $netatalk_minor_min \& \
87         $netatalk_micro_version \>= $netatalk_micro_min `
88
89     if test "$netatalk_version_proper" = "1" ; then
90       AC_MSG_RESULT([$netatalk_major_version.$netatalk_minor_version.$netatalk_micro_version])
91     else
92       AC_MSG_RESULT(no)
93       no_netatalk=yes
94     fi
95
96     if test "X$no_netatalk" = "Xyes" ; then
97       enable_netatalktest=no
98     fi
99
100     AC_LANG_SAVE
101     AC_LANG_CPLUSPLUS
102
103 dnl
104 dnl
105 dnl
106     if test "x$enable_netatalktest" = "xyes" ; then
107       AC_MSG_CHECKING(if netatalk sane)
108       ac_save_CXXFLAGS="$CXXFLAGS"
109       ac_save_LIBS="$LIBS"
110       CXXFLAGS="$CXXFLAGS $NETATALK_CFLAGS"
111       LIBS="$LIBS $NETATALK_LIBS"
112
113       rm -f conf.netatalktest
114
115       AC_TRY_RUN([
116 #include <stdio.h>
117 #include <libatalk/version.h>
118
119 int main(int argc,char **argv)
120   {
121    if (netatalk_major_version!=$netatalk_major_version ||
122        netatalk_minor_version!=$netatalk_minor_version ||
123        netatalk_micro_version!=$netatalk_micro_version)
124      { printf("(%d.%d.%d) ",
125          netatalk_major_version,netatalk_minor_version,netatalk_micro_version);
126        return 1;
127      }
128   }
129
130 ],[
131   AC_MSG_RESULT(yes)
132 ],[
133   AC_MSG_RESULT(no)
134   no_netatalk=yes
135 ]
136 ,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
137
138        CXXFLAGS="$ac_save_CXXFLAGS"
139        LIBS="$ac_save_LIBS"
140      fi
141   fi
142
143   dnl
144   dnl
145   if test "x$no_netatalk" = x ; then
146      ifelse([$2], , :, [$2])     
147   else
148      NETATALK_CFLAGS=""
149      NETATALK_LIBS=""
150      ifelse([$3], , :, [$3])
151   fi
152
153   AC_LANG_RESTORE
154
155   AC_SUBST(NETATALK_CFLAGS)
156   AC_SUBST(NETATALK_LIBS)
157 ])
158